服务器送给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,都必须告知客户端将要传输的文件类型,一般默认情况下为“Text/Html”类型。 ContentType类型 ".*"="application/octet-stream" ".001"="application/x-001" ".301"="application/x-301" ".323"="text/h323" ".906"="application/x-906" ".907"="drawing/907" ".a11"="application/x-a11" ...
摘要:做网络应用,封包,解包是家常便饭,但如何做到准确、稳定而且性能好,却不太容易做到,这次和大家分享一下我在解析网络包上的经验。
思路:设计一个网络协议,一般都会分包,一个包就相当于一个逻辑上的命令。1、如果我们用udp协议,省事的多,一次会收到一个完整的包,但UDP不可靠,顺序也不能保证,当然像QQ对UDP封装的很好,模拟了TCP的可靠性。网上也有一些封装好的可靠的UDP组件,大家用的话可以找找。关于用什么协议好这个问题,本贴不讨论。2、如果我们用TCP协议不是长连接,像HTTP(不考虑KeepAlive)那样,一个连接上只发送一个包,我们也会很清晰的区分出接受到的每一个包。3、还有就是 ...
Heritrix Heritrix是一个开源,可扩展的web爬虫项目。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。http://crawler.archive.org/WebSPHINX WebSPHINX是一个Java类包和Web爬虫的交互式开发环境。Web爬虫(也叫作机器人或蜘蛛)是可以自动浏览与处理Web页面的程序。WebSPHINX由两部分组成:爬虫工作平台和WebSPHINX类包。http://www.cs.cmu.edu/~rcm/websphinx/WebLech WebLech是一个功能强大的Web站点下载与镜像工具。它支持按功 ...
什么是mp3爬虫(mp3spider)?
mp3爬虫(mp3spider)是一个用来从mp3.baidu.com实现mp3批量下载的一个脚本。由于baidu的网页中的HTML标签可能随时改变,所以这我不能保证这个脚本随时都能够工作,我只能尽量确定它是可用的。
下载
怎么使用?
mp3spider只能够在Linux下工作(Unix可能能用,不过我没有尝试过). 步骤:1. 下载脚本wget http://www.shaohui.org/downloads/mp3spider.sh 2. 选择下载的mp3的类别...#SOURCE=http://list. ...
在邮件列表中看到有人问 Heritrix 爬虫与 Nutch 爬虫的不同。搜索了一下,该项目的领导者是 Gordon Mohr ,Heritrix 主要用在 http://www.archive.org 。基本定义描述:
Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
没想到过了一会儿,在邮件列表中居然看到了 Gordon Mohr 的发言。看来他也比较关心 Nutch 的发展。
我对 Mohr 的发言整理一 ...
Heritrix项目介绍
Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的资源进行归档,建立网络数字图书馆。在过去的6年里,IA已经建立了400TB的数据。 IA期望他们的crawler包含以下几种:
宽带爬虫:能够以更高的带宽去站点爬。
主题爬虫:集中于被选择的问题。
持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。
实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对不同协议的爬虫 爬行结果进行分析的。
Heritrix工作原理
Heritrix是一个爬虫框架,可加如入一些可互换的组件。它的执行是递归进行的,主要有以下 ...
Java遍历文件夹的2种方法:
A.不使用递归:
import java.io.File;import java.util.LinkedList;public class FileSystem { public static void main(String[] args) { long a = System.currentTimeMillis(); & ...
分别写入数据到序列化文件和文本文件中:
public static void main(String[] args) { ArrayList al = new ArrayList(); try { FileWriter fw = new FileWriter(new File("e:\\s.txt")); for(int i=0;i<1000;i++){ String str = " ...
现有一个每行固定格式的.txt文本,我需要每行进行解析、处理并导入数据库。 我采用的是readline的方式处理。 当行数不多时,还可以。 当行数多时,内存占用大,效率低。 请问如何处理更合理? 针对所有文件(文本,非文本)
File file = new File("filename");
BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file),10*1024*1024); // 用10M的缓冲读取
专门针对文本文件,还可以使用Buffer ...
有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问了。这种解决思路能大大简化修改文件的代码。下面就是一个简单的例子:
代码
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class LargeMappedFiles {
stati ...







评论排行榜