网站发布和管理系统,目前玩的人最多网游排行,微网站免费建站系统,中国贸易网官网scrapy项目创建与启动
创建项目
在你的工作目录下直接使用命令:
scrapy startproject scrapytutorial运行后创建了一个名为scrapytutorial的爬虫工程
创建spider
在爬虫工程文件内#xff0c;运行以下命令#xff1a;
scrapy genspider quotes创建了名为quotes的爬虫
…scrapy项目创建与启动
创建项目
在你的工作目录下直接使用命令:
scrapy startproject scrapytutorial运行后创建了一个名为scrapytutorial的爬虫工程
创建spider
在爬虫工程文件内运行以下命令
scrapy genspider quotes创建了名为quotes的爬虫
修改爬虫代码实现自己想要的爬虫逻辑
启动爬虫
在爬虫项目目录下运行:
scrapy crawl quotes即可运行爬虫
Spider
在scrapy中网站的链接配置抓取逻辑解析逻辑都是在spider内配置。 start_requests
分析以下简单的爬虫代码
import scrapyclass HttpbinspiderSpider(scrapy.Spider):# 定义 Spider 的名称name httpbinspider# 设置允许爬取的域名allowed_domains [www.httpbin.org]# 定义起始 URLstart_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, callbackself.parse, meta{offset: offset})# 定义数据处理逻辑def parse(self, response):# 打印 offset 和响应文本print(foffset {response.meta[offset]})print(response.text)# 打印 meta 数据这里包含了在 start_requests 中传递的 offsetprint(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(urlurl) 或 scrapy.Request(method‘GET’,urlurl) 发送GET请求查询参数建议拼接在url内。
spider发送POST请求