Top Menu

抓取在线查看的单页图片格式文档

抓取内容分析

抓取页面:http://www.zzguifan.com/webarbs/book/117/2916303.shtml

是一个规范文件的在线查看网站,可以单页查看,但没有提供下载方法。右键图片发现是明文链接,遂考虑使用代码批量抓取。

分析页面结构,左侧为文档页数,右侧为文档图片。

由于左侧显示了所有的页面链接,查看链接名称后发现链接是按数字顺序排序的,从2916303至2916606,共304个页面。在知道了页面链接的规律之后,就可以直接构造抓取链接。

而右侧的图片包括在了一个Div中,Div的Class参数为book_content,通过在Div中查找img标签,可以直接获得图片url。

通过模拟抓取页面,发现网站并没有采用防抓取技术,图片也是明文链接,可以直接从外部下载服务器端资源。

构造代码

使用组件:Sunra\PhpSimple\HtmlDomParser

主要部分

抓取代码的主要部分是一个for循环,遍历需要抓取的页面地址,获取img的src地址,然后通过curl下载到本地。

其中,考虑到中断后的再次运行,添加了对下载文件的判断,如果已下载完成,就直接跳过抓取步骤。

总结

存在问题:网页端运行后,需要1-2秒才能下载一页内容,所以303页需要至少600秒,严重的超过了PHP的运行时限,所以代码中端后,需要多次刷新页面重新运行,也可以在浏览器端使用定时刷新插件,5分钟刷新一次,15分钟左右,可以下载完成303页文件。

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes