irpas技术客

Python 爬虫学习笔记(十(1))scrapy框架_湫兮如风i

未知 5657

一、scrapy介绍 scrap是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便


二、scrapy的基本使用

首先在PyCharm pip install scrapy

1. 创建scrapy项目

在PyCharm的终端Terminal输入scrapy startproject scrapy_baidu_01来创建项目。这里scrapy_baidu_01是我起的项目名称,项目名称不能以数字开头,不能包含汉字。 创建成功如下图,项目目录也会多出一个名为scrapy_baidu_01的文件夹。

2. 创建爬虫文件

要在spiders文件夹下创建爬虫文件,首先cd进入spiders文件夹,(如果显示没有此目录,重启PyCharm可能会解决问题)。 之后输入scrapy genspider 爬虫文件的名字 要爬取的网页 示例如下,注:要爬取的网页不需要写http,直接www…即可 运行上述语句,生成的baidu.py如下图 parse()是执行了start_url之后要执行的方法,方法中的response就是返回的对象。相当于response = requests.get或urllib.request.urlopen

3. 运行爬虫代码

scrapy crawl 爬虫的名字(name参数)

这里我让parse函数打印一句话,运行后发现没有打印结果,原因是被一个叫robots.txt的文件给阻止了。 这是各大平台的君子协议,只需在settings里将ROBOTSTXT_OBEY = True注释掉即可。 去掉后运行,果然成功了


三、scrapy项目的结构 项目名称 项目名称 spiders文件夹 __init__.py自定义爬虫文件 (核心功能文件) __init__.pyitems.py (定义数据结构的地方,爬取的数据都包含哪些)middlewares.py (中间件:代理)pipelines.py (管道:用来处理下载的数据)settings.py (配置文件 robots协议,ua定义等)
四、response的属性和方法

response.text 获取响应的字符串(源码) response.body 获取响应的二进制数据(二进制源码) response.xpath 直接通过xpath解析response中的内容 response.extract() 提取selector对象的data属性值 response.extract_first() 提取selector列表的第一个数据


五、scrapy工作原理 引擎向spiders要url引擎将要爬取的url给调度器调度器会将url生成请求对象放入到指定的队列中从队列中出队一个请求引擎将请求交给下载器处理下载器发送请求获取互联网数据下载器将数据返回给引擎引擎将数据再次给spidersspiders通过xpath解析该数据,得到数据或urlspiders将数据或url给到引擎引擎判断是数据还是url,若是数据,交给管道处理;若是url,交给调度器处理
总结

scrapy库使用步骤:

创建scrapy项目(不能有汉字,不能数字开头) ’scrapy startproject 项目名称’创建爬虫文件,进入spiders文件夹,输入 ’scrapy genspider 爬虫文件的名字 要爬取的网页’运行爬虫代码 ‘scrapy crawl 爬虫的名字’ (name参数)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Python #scrapy框架的基本使用详解