• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python爬虫-scrapy介绍及使用

python 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

scrapy的流程

其流程可以描述如下:

● 调度器把requests–>引擎–>下载中间件—>下载器

● 下载器发送请求,获取响应—->下载中间件—->引擎—>爬虫中间件—>爬虫

● 爬虫提取url地址,组装成request对象—->爬虫中间件—>引擎—>调度器

● 爬虫提取数据—>引擎—>管道

● 管道进行数据的处理和保存

注意:

图中绿色线条的表示数据的传递

注意图中中间件的位置,决定了其作用

注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互

scrapy中每个模块的具体作用

1.scrapy项目实现流程

创建一个scrapy项目:scrapy startproject 项目名

生成一个爬虫:scrapy genspider 爬虫名 允许爬取的范围

提取数据:完善spider,使用xpath等方法

保存数据:pipeline中保存数据

2. 创建scrapy项目

命令:scrapy startproject +<项目名字>

示例:scrapy startproject myspider

生成的目录和文件结果如下:

settings.py中的重点字段和内涵

● USER_AGENT 设置ua

● ROBOTSTXT_OBEY 是否遵守robots协议,默认是遵守

● CONCURRENT_REQUESTS 设置并发请求的数量,默认是16个

● DOWNLOAD_DELAY 下载延迟,默认无延迟

● COOKIES_ENABLED 是否开启co来4源gaodaimacom搞#代%码*网okie,即每次请求带上前一次的cookie,默认是开启的

● DEFAULT_REQUEST_HEADERS 设置默认请求头

● SPIDER_MIDDLEWARES 爬虫中间件,设置过程和管道相同

● DOWNLOADER_MIDDLEWARES 下载中间件

创建爬虫

命令:scrapy genspider +<爬虫名字> + <允许爬取的域名>

生成的目录和文件结果如下:

完善spider

完善spider即通过方法进行数据的提取等操做:

注意:

● response.xpath方法的返回结果是一个类似list的类型,其中包含的是selector对象,操作和列表一样,但是有一些额外的方法

● extract() 返回一个包含有字符串的列表

● extract_first() 返回列表中的第一个字符串,列表为空没有返回None

● spider中的parse方法必须有

● 需要抓取的url地址必须属于allowed_domains,但是start_urls中的url地址没有这个限制

● 启动爬虫的时候注意启动的位置,是在项目路径下启动

数据传递到pipeline

为什么要使用yield?

● 让整个函数变成一个生成器,有什么好处呢?

● 遍历这个函数的返回值的时候,挨个把数据读到内存,不会造成内存的瞬间占用过高

● python3中的range和python2中的xrange同理

注意:

yield能够传递的对象只能是:BaseItem,Request,dict,None


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python爬虫-scrapy介绍及使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址