爬虫笔记(二)

mac2022-06-30  21

一、安装scrapy框架:1,安装:pip install scrapy2,windows下,还需要安装pypiwin32(不安装,在运行scrapy项目的时候就会报错)

二、创建项目爬虫:cmd下操作1,创建项目:scrapy startproject [爬虫名字]2,创建爬虫:进入到爬虫所在的路径下,执行命令:scrapy genspider [爬虫名字] ["爬虫的域名"]注意:爬虫名字不能和项目名称相同

三、项目目录结构1,items.py:用来存放爬虫爬取下来数据的模型2,middlewares.py:用来存放各种中间件的文件3,pipelines.py:用来将items的模型存储到本地磁盘中4,settings.py:本爬虫的一些配置信息(比如请求头、多久发送一次请求、ip代理池等)5,scrapy.cfg:项目的配置文件6,spiders包:以后所有的爬虫,都是存放到这个里面。

四、步骤settings.py1,机器人设置:ROBOTSTXT_OBEY = False2,构建请求头:DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}

五、糗事百科Scrapy爬虫笔记:1,response是一个scrapy.http.response.html.HtmlResponse对象,可以执行xpath和css语法来提取数据2,提取出来的数据是一个‘Selector’或者是一个‘SelectorList’,如果想要获取其中的字符串,应该执行‘getall’或者‘get’方法3,getall方法:获取‘selector’中所有的文本,返回的是一个列表4,get方法:获取的是‘selector’中第一个文本,返回的是一个str类型5,如果数据解析回来,要传给pipline处理,那么可以使用‘yield’来返回,或者是手机所有的item,最后统一使用return返回6,item:建议在‘items.py’中定义好模型,以后就不要使用字典7,pipline:这个是专门用来保存数据的,其中有三个方法会经常使用 open_spider(self, spider):当爬虫被打开的时候执行 process_item(self, item, spider):当爬虫有item传过来的时候会被调用 close_spder(self, spider):当爬虫关闭的时候会被调用 要激活pipline,应该在‘setting.py’中,设置‘ITEM_PIPELINES’

六、JsonLinesItemExporter和JsonItemExporter:保存json数据的时候,可以使用这两个类,让操作变得更加简单1,JsonItemExporter是每次把数据添加到内存中,最后统一一次写入磁盘,好处是存储的数据是一个满足json规则的数据 坏处是如果数据量比较大,比较耗内存2,JsonLinesItemExporter是每次调用‘export_item’的时候把这个item存储到硬盘中,坏处是每一个字典是一行, 整个文件不是一个满足json格式的文件,好处是处理数据的时候就直接存储到硬盘中,这样就不会耗内存,数据也比较安全

转载于:https://www.cnblogs.com/yxtang/p/11315551.html

相关资源:最牛逼的Python爬虫学习笔记
最新回复(0)