使用winhttrack整站下载(扒站)

虽然我学了一段时间的python爬虫,但是水平是个半吊子。而且定制爬虫比较费时间,最近有整站下载的需求,就找现成的解决方案(免费的)。找到了httrack和Cyotek, httrack是一个历史悠久的整站下载软件,多平台,功能丰富。而cyotek是比较新的软件,功能不太完善,目前20180929最新的版本是1.6beta, 但是我看了一下的roadmap他们在1.7版才计划引入cookie import, 没有cookie 导入显然弱爆了啊。所以我最后选择了httrack

winhttrack是window平台下的解决方案,按照我的理解,性能可能会比Linux平台下弱一些,但是操作比较方便。winhttrack这个软件,操作比较简单,就不详细介绍了,比较麻烦的两个点是:1) 很多网站内容需要登陆后浏览,需要获取登陆(password auth)后的页面 2.) 默认的采集规则是整站下载,会爬很多我们不需要的东西,所以需要学习采集URL规则的设置

这里记录一下我使用winhttrack采集XX论坛为例子,记录一下:

1. 新建一个项目,捕获登陆URL需要设置代理,需要说明的是ipv6地址需要在浏览器里面设置成[ipv6]:port 格式,简单来说就是要加上[]。先不设置代理,找到登陆入口 www.domain.com/login.php 然后填写账户密码,再设置代理,点击网页登陆按钮,网页跳转失败,winhttrack就捕获到登陆信息了,这里需要检查一下域名是不是对的。然后下面还要填上账户密码。

2. 然后设置选项, 比较重要的几个点就是, 禁用robots.txt?,然后设置scan rules, 这里推荐选择include模式会快很多,同时避免采集不需要的信息,详细的文档看官方的,不是很难:https://www.httrack.com/html/filters.html。 还需要设置browser ID( UA) ,在hts-post0文件中可以找到。

3. 导入cookie文件,chrome浏览器可以使用这个插件导出到文件cookies.txt。https://chrome.google.com/webstore/detail/cookiestxt/njabckikapfpffapmjgojcnbfjonfjfg, 导出以后放到项目对应的文件夹里面,属性设置为只读。

完成上面三点以后就可以开干了。

最后贴一下discuz论坛的include scan rules, 只采集帖子,不采集乱七八糟的东西。
-* +*www.advertcn.com/forum*.html +*www.advertcn.com/thread*.html

参考资料:https://forum.httrack.com/readmsg/34537/33962/index.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据