||
好长时间没有使用自己蹩脚的技术写个小爬虫做点事情了,刚好,发现一个小说网站,当然,我对小说内容没有兴趣,只是随便找了本小说,爬爬测试。
下面是我的爬虫逻辑,首先,从目录页获得每个章的地址,这个在http://www.jmrgs.com/showinfo-121-65372-0.html#001这个网页上,可以通过beautifulsoup解析网页中的//*[@id=”17k_page_1_play”]/ul来获得,我是用了笨法,把这个网页源中的一部分复制下来,用文本编辑器去掉了无关字符来获得的。我觉得速度还可以,毕竟同样是批处理。
第二步是网址的合成,上一步得到的网址只有这个网站域名的后半部分,于是用连接字符串的方法,合成一个完整的网址。最后一步就是攫取内容,从网页获得内容,解析成文字,然后判断是不是最后一页(通过a.next),最后是循环爬取内容。为了防止被封,我设置了每隔2s爬取一次,但是在2600多秒还是被禁了,估计是还是识别了异常访问,没有作浏览器伪装。最后内容的获取其实写入文件更简单,但是会编码报错,于是打印出来再复制到文件的。其实,如果去掉那些字符,应该也不会报错了。
https://raw.githubusercontent.com/zd200572/craw-python/master/craw_xiaoshuo.py