php爬取10万条数据,利用wget全量爬取列表明细10万条

1、生成下载分页列表list.txt

1)无法指定分页大小,URL中带页数如p=3,page/1

2)允许指定分页大小,max=100&offset=200,max表示一页显示几条数据,offset表示从第几条后开始显示

通过excel很容易生成一个列表

7298c1bf3cf1fd5b5549f5b3eb8faf37.png

2、爬取列表页面

wget -b -t 3 -i list.txt --no-cookies,-b在后台抓取,-t重试3次

3、利用正则解析列表明细地址,通过EditPlus正则查找文件夹替换也能搞定,以下为java代码:

File dir = new File("list");

File[] fs= dir.listFiles();

int len = -1; char[] cbuf = new char[10240];

for(File f : fs){

FileReader fr = new FileReader(f);

StringBuilder sb = new StringBuilder();

while((len = fr.read(cbuf)) > -1){

sb.append(cbuf, 0, len);

}

fr.close();

Pattern p = Pattern.compile("/show/(\\S+?)\"");

Matcher m = p.matcher(sb);

while(m.find()){

System.out.println("http://www.h2do.com/" + m.group(1));

}

}

4、根据网络和服务器允许并发线程数手工拆分文件,detail1.txt,detail2.txt,...,detailn.txt

wget -b -t 3 -i detail1.txt

wget -b -t 3 -i detail2.txt

...

wget -b -t 3 -i detailn.txt

不足之处,当服务器返回错误500(Internal Server Error)时wget无法配置重试,-t应该是IO异常时重试。

ren  * *.html 下载文件缺少扩展名,为全部文件添加扩展名;

move /Y * ../www 大量文件合并目录时,如果在资源管理器ctrl+x,ctrl+v需要一个统计重复文件个数并提示过程,直接命令行/Y能快速剪切到指定目录;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值