刚开始做爬虫,在爬一个动态页面的时候如果一下子返回content,是空字符串 怎么等待它页面绘制完成呢,新手
等待绘制完成 可以试试用 PhantomJS 或者 node-webkit来弄 还有一种思路是直接找到对应的数据接口,取代爬网页
如果状态码是200,内容是空,那个页面就是个空页面 如果302重定向,那么直接请求跳转指向的地址 如果ajax加载,那还是得找接口地址 普通爬虫应该用不上node-webkit
动态页面是指html由服务器动态生成,还是网页内容由javascript控制动态生成?
@klesh 应该是javascript
@ChrisFuck 如果是像 angularjs 之类,内容由浏览器的 js 生成,推荐 PhantomJS
@klesh 是的。它页面里的东西都是angularjs 的{{}}绑定,而且都以GB2312编码,Windows下也不能用那个iconv解码,晕了
现在只有通过phantomJS来实现了.我原来试过用selenium,它的开销更大.
@ChrisFuck 我记得 iconv-lite在win下面是可以用的。如果你是针对特定具体网站进行抓取,那还是用request库好些,开销小速度快。
来自酷炫的 CNodeMD
你有没试过splash。 开发者是开发来配合scrapy用的,但只是个渲染代理。
爬虫还是python各种东西全,更何况现在python都有async关键字了。。。
@klesh 恩,inconv-lite可以用,但是不能处理宽字节,iconv不能用
动态页面不能爬网址,建议你找一下人家的接口,我就是那么爬得。
可以试试用cheerio.load() 如果不行就老老实实按F12看timeline找对应数据接口吧
@ChrisFuck 那不能啊?怎么说不能处理的,举个实例?