失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python 网络爬虫笔记10 -- Scrapy 使用入门

Python 网络爬虫笔记10 -- Scrapy 使用入门

时间:2021-07-12 23:22:47

相关推荐

Python 网络爬虫笔记10 -- Scrapy 使用入门

Python 网络爬虫笔记10 – Scrapy 使用入门

Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。

课程链接:Python网络爬虫与信息提取

参考文档:

Requests 官方文档(英文)

Requests 官方文档(中文)

Beautiful Soup 官方文档

re 官方文档

Scrapy 官方文档(英文)

Scrapy 官方文档(中文)

一、Scrapy 使用简化步骤

1、建立一个 Scrapy 爬虫工程

# 打开 cmd ,cd到要创建工程的目录,输入命令scrapy startproject scrapy_demo

工程的文件结构:

scrapy_demo/# 工程根目录scrapy.cfg# 部署Scrapy爬虫的配置文件scrapy_demo/# Scrapy框架的用户自定义Python代码__pycache__/# 缓存目录,无需修改spiders/# piders代码模板目录(继承类),此目录下可添加自定义的spider代码__init__.py# 初始文件,无需修改__pycache__/# 缓存目录,无需修改__init__.py# 初始化脚本items.py# Items代码模板(继承类)middlewares.py# Middlewares代码模板(继承类)pipelines.py# Pipelines代码模板(继承类)settings.py# Scrapy爬虫的配置文件

2、在工程中产生一个Scrapy爬虫

作用:

生成一个名称为demo的spider在 spiders 目录下增加代码文件 demo.py该命令仅用于生成 demo.py,该文件也可以手工生成

# 打开 cmd ,cd到 Scrapy工程的目录,输入命令(爬取的网站网址为可选参数)scrapy genspider demo python123.io

自动生成的 demo.py :

# -*- coding: utf-8 -*-import scrapyclass DemoSpider(scrapy.Spider):name = 'demo'allowed_domains = ['python123.io']start_urls = ['http://python123.io/ws/demo.html']# 处理响应,解析由Downloader生成Response对象def parse(self, response):pass

3、配置产生的spider爬虫

配置内容:

设置初始URL地址编写获取页面后的解析方法

修改后的 demo.py(普通版):

# -*- coding: utf-8 -*-import scrapyclass DemoSpider(scrapy.Spider):"""普通版"""name = 'demo'# allowed_domains = ['python123.io']start_urls = ['http://python123.io/ws/demo.html']# 解析Response对象,保存HTML文件def parse(self, response):file_name = response.url.split('/')[-1]with open(file_name, 'wb') as f:f.write(response.body)self.log('Saved file %s.' % file_name)

修改后的 demo.py(yield版):

# -*- coding: utf-8 -*-import scrapyclass DemoSpider(scrapy.Spider):"""yield 版"""name = 'demo'def start_requests(self):urls = ['http://python123.io/ws/demo.html']for url in urls:yield scrapy.Request(url=url, callback=self.parse)def parse(self, response):file_name = response.url.split('/')[-1]with open(file_name, 'wb') as f:f.write(response.body)self.log('Saved file %s.' % file_name)

4、运行爬虫,获取网页

# 打开 cmd ,cd到 Scrapy工程的目录,输入命令scrapy crawl demo

二、Scrapy 使用标准步骤

创建一个工程和Spider模板编写Spider编写Spider编写Item Pipeline编写Item Pipeline优化配置策略优化配置策略

三、Scrapy 数据类型

1、Request 类:class scrapy.http.Request()

Request对象表示一个HTTP请求,由Spider生成,由Downloader执行

2、Response 类:class scrapy.http.Response()

Response对象表示一个HTTP响应,由Downloader生成,由Spider处理

3、Item 类:class scrapy.item.Item()

Item对象表示一个从HTML页面中提取的信息内容,由Spider生成,由Item Pipeline处理Item类似字典类型,可以按照字典类型操作

四、CSS Selector

用来检索HTML网页的内容

# 格式<HTML>.css('标签名称::attr(标签属性)').extract()# 示例<HTML>.css('a::attr(href)').extract()

如果觉得《Python 网络爬虫笔记10 -- Scrapy 使用入门》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。