简书首页数据抓取的答疑 (2)

上一篇文章 简书首页数据抓取的答疑 ,分析了在抓取简书首页时的问题,还有一些小的细节需要注意。

一、Scrapy: url length > 2083 的问题

按照上一篇文章的思路方法,构造好URL,加上headers参数,能够顺利获取到第2、3、4页的数据,但是加载到第5页时出现一个错误:

是说url过长,超过2083个字符。第5页的url有81个参数(80个id和page),一共2425个字符,用浏览器(chrome, firefox)直接打开访问能正确加载到数据。

关于url too long 的问题,查了一下,有网友测试了个浏览器和服务器支持的最大URL长度,附表如下:

浏览器 URL长度限制
IE URL最大限制是2083个字节,Path长度最大是2048字节(Get请求)。
Firefox 65536
Safari 80000以上
Opera 190000字节以上
Chrome 8182字节
Apache Server 8192字节
IIS 16384字节
Perl HTTP::Daemon 至少8000字节

在请求时USER_AGENT 的设置并不是IE,但还是有这个限制。我试了一下用requests直接发送请求,可以获取到数据。

scrapy 在setting.py中增加一个参数即可:

URLLENGTH_LIMIT = 20000

再次启动爬虫,正常抓取。但是抓取到第8页时,发现就没有数据返回了,状态码是400。在浏览器中依次加载到第8页也是一样,获取不到数据,暂不清楚原因。

有一点需要更正:虽然分页url传递的id数量增加了,下一页每次获取的数据仍然是20条。

二、结构化数据需要加上判断

在页面文章信息中,每篇文章都有浏览量,评论量(包括0),获赞量,但不是每一篇文章都有 打赏和 所属专题。

解决以上问题,就能抓取到简书首页文章的相关数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容