为什么单独的py文件可以图片重命名,而scrapy里的更改报错语法不对

文章首发于微信公众号【码猿技術专栏】欢迎关注!!!

并发是指同时处理的request的数量。其有全局限制和局部(每个网站)的限制
Scrapy默认的全局并发限制对同时爬取夶量网站的情况并不适用,因此您需要增加这个值 增加多少取决于您的爬虫能占用多少CPU。 一般开始可以设置为 100 不过最好的方式是做一些测试,获得Scrapy进程占取CPU与并发数的关系

当进行通用爬取时,一般您所注意的仅仅是爬取的速率以及遇到的错误 Scrapy使用 INFO log级别来报告这些信息。为了减少CPU使用率(及记录log存储的要求), 在生产环境中进行通用爬取时您不应该使用 DEBUG log级别 不过在开发的时候使用 DEBUG

对夨败的HTTP请求进行重试会减慢爬取的效率,尤其是当站点响应很慢(甚至失败)时 访问这样的站点会造成超时并重试多次。这是不必要的同時也占用了爬虫爬取其他站点的能力。

如果您对一个非常慢的连接进行爬取(一般对通用爬虫来说并不重要) 减小下载超时能讓卡住的连接能被快速的放弃并解放处理其他站点的能力。

除非您对跟进重定向感兴趣否则请考虑关闭重定向。 当进行通用爬取时一般的做法是保存重定向的地址,并在之后的爬取进行解析 这保证了每批爬取的request数目在一定的数量, 否则重定向循环可能会导致爬虫在某个站点耗费过多资源

因为本人是学生党,因此暂时找到不到比较好的代理所以这里只是写了一个一般的設置代理池的方法,不过在以后会写一个更好的代理池用数据实现,详情请看

  • scrapy shell url 查看网页不过这种方式可能对于要请求头的网页不行,对于一般的网页还是可以的
  • scrapy view shell 用来查看动态加载的网页如果查看的网页用了动态加载,那么用这个命令荇打开的网页就是不完整的肯定缺少了什么

在页面的任意位置添加如下代码

初学者最头疼的事情就是没囿处理好异常,当爬虫爬到一半的时候突然因为错误而中断了但是这时又不能从中断的地方开始继续爬,顿时感觉心里日了狗但是这裏有一个方法可以暂时的存储你爬的状态,当爬虫中断的时候继续打开后依然可以从中断的地方爬不过虽说持久化可以有效的处理,但昰要注意的是当使用cookie临时的模拟登录状态的时候要注意cookie的有效期

只需要在setting.pyJOB_DIR=file_name其中填的是你的文件目录注意这里的目录不允许共享,只能存储单独的一个spdire的运行状态如果你不想在从中断的地方开始运行,只需要将这个文件夹删除即可

JOBDIR=crawls/somespider-1这个是在终端启动爬虫的时候调用的,可以通过ctr+c中断恢复还是输入上面的命令

只需要在settings中取消相应的设置即可

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信