本文介绍: 详细介绍scrapy核心组件spider,middleware item pipeline的使用,代码复用度高,示例可拓展开发。
scrapy项目创建与启动
创建项目
在你的工作目录下直接使用命令:
scrapy startproject scrapytutorial
运行后创建了一个名为scrapytutorial的爬虫工程
创建spider
在爬虫工程文件内,运行以下命令:
scrapy genspider quotes
创建了名为quotes的爬虫
修改爬虫代码,实现自己想要的爬虫逻辑
启动爬虫
在爬虫项目目录下,运行:
scrapy crawl quotes
即可运行爬虫
Spider
在scrapy中,网站的链接配置,抓取逻辑,解析逻辑都是在spider内配置。
start_requests
分析以下简单的爬虫代码:
import scrapy
class HttpbinspiderSpider(scrapy.Spider):
# 定义 Spider 的名称
name = "httpbinspider"
# 设置允许爬取的域名
allowed_domains = ["www.httpbin.org"]
# 定义起始 URL
start_uri = 'https://www.httpbin.org/get'
# 定义 Spider 的起始请求
def start_requests(self):
# 使用循环生成多个请求,这里生成了 1 到 5 的 offset 参数
for offset in range(1, 6):
url = self.start_uri + f'?offset={offset}'
# 生成请求,并指定回调函数为 parse
# 同时将 offset 通过 meta 传递给回调函数
yield scrapy.Request(url, callback=self.parse, meta={'offset': offset})
# 定义数据处理逻辑
def parse(self, response):
# 打印 offset 和响应文本
print(f"===============offset {response.meta['offset']}=========")
print(response.text)
# 打印 meta 数据,这里包含了在 start_requests 中传递的 offset
print(response.meta)
这里我重写了start_requests方法,使用scrapy.Request构造了5个GET请求,并使用yield方法发送到下载器用于下载,同时指定了响应的解析回调函数,并通过meta参数传递offset参数。
简要说明:
name:定义 Spider 的名称。
allowed_domains:定义允许爬取的域名。
start_uri:定义起始 URL。
start_requests:生成起始请求,使用循环生成多个带有不同 offset 参数的请求,每个请求的回调函数是 parse。
parse:处理响应的回调函数,打印 offset、响应文本和 meta 数据。
spider发送GET请求
使用scrapy.Request(url=url)
或 scrapy.Request(method=‘GET’,url=url)
发送GET请求,查询参数建议拼接在url内。
spider发送POST请求
原文地址:https://blog.csdn.net/Jesse_Kyrie/article/details/135814748
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_61511.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。