scrapy 记录

来源:互联网 发布:淘宝游戏充值赚钱吗 编辑:程序博客网 时间:2024/05/21 06:50

命令行  scrapy startproject tutorial

生成如下目录:

<span style="font-size:14px;">tutorial/    scrapy.cfg    tutorial/        __init__.py        items.py        pipelines.py        settings.py        spiders/            __init__.py            ...</span>

  • scrapy.cfg: 项目的配置文件
  • tutorial/: 该项目的python模块。之后您将在此加入代码。
  • tutorial/items.py: 项目中的item文件.
  • tutorial/pipelines.py: 项目中的pipelines文件.
  • tutorial/settings.py: 项目的设置文件.
  • tutorial/spiders/: 放置spider代码的目录

默认下载图片功能,有以下步骤

1、在tutorial/items.py中添加

image_urls = scrapy.Field()images = scrapy.Field()
2、开启你的图片管道,需要在tutorial/settings.py中添加
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline': 1}后面的数字可有可无,按照数字大小进行排序,按顺序加载管道ITEM_PIPELINES

3、设置图片存储路径,需要在tutorial/settings.py中设置IMAGES_STORE为图片存储路径,否则管道将保持禁用状态,即使设置了

记得下载Pillow

如果要自定义自己的图片管道,比如默认的图片下载管道有限制,图片不能分组存储,图片不能修改文件名等,可以自定义自己的图片下载管道,如,自定义MyImagesPipeline,即tutorial/MyImagesPipeline.py,里面定义class MyImagesPipeline(ImagesPipeline),然后在tutorial/settings.py里在ITEM_PIPELINES里加上自定义的MyImagesPipeline,形如ITEM_PIPELINES = ['tutorial.MyImagesPipeline.MyImagesPipeline','tutorial.pipelines.MmonlyPipeline']

其他:

1、要将分析到的图片链接放到item里面的image_urls里面,这个东东分明是个list,我用append来加入,运行会有错误提示

别人的代码是item['image_urls'] = hxs.select('//*..******').extract(),这样的确可以,而且有了这个赋值之后,在用append加入字符串(url)就可以正确下载了

2、一开始没有做avoid banning的工作,只能下载几张图片,其他所有的图片都下不了(我也怀疑是家里或者外部网络的原因)

打击了我一天多后,查反爬虫技巧,看scrapy的相关文档,我做了如下工作

1、禁用Cookies

2、设置User Agent。查看user agent:在chrome中,地址栏输入chrome://version/

今晚爬了一下煎蛋的妹子图,成功了哦。再次尝试的时候,竟然就可以了,下载飞快

0 0
原创粉丝点击