一、scrapy概述
1 为什么学习Scrapy?
爬虫必备的技术 面试…
让我们的爬虫更快更强大
2 什么是Scrapy?
异步爬虫框架
3 Scrapy它有什么优势?
可配置和可扩展性非常高
Scrapy框架是基于异步 Twisted异步网络框架 (复杂 闭包)
4 如何学习?
- 参考官方文档
- csdn
二、scrapy的工作流程

- 引擎
- 爬虫程序 (D:\python_spider\scrapy快框架\myspider\myspider\spiders\douban.py)
- 调度器
- 下载器
- 爬虫、下载中间件 (middlewares.py)
- 管道 (piplines.py)
建立爬虫项目时,还有一同创建的:
- items.py (提前进行数据封装)
- settings.py (设置配置项)
**常用的:
1.爬虫程序
2.settings.py
包含:
- “君子协议”
- 默认并发量为16
- 下载延迟
- 请求报头
- 爬虫、下载中间件
- 管道
3.piplines.py**
具体解释:
1 引擎:整个框架的核心
2 调度器:接收从引擎发过来的url,入列
3 项目管道:数据处理(存储数据) (编写逻辑)
4 爬虫文件:整个爬虫的解析处理 (编写逻辑)
5 下载器:发请求获响应
6 下载中间件 处理引擎和下载器之间的请求与响应(用的是比较多的) (编写逻辑)
7 爬虫中间件处理爬虫程序的响应和输出结果以及新的请求
三、Scrapy快速入门
目标url:https://www.douban.com/
爬取的内容 标题
第一步 先创建scrapy项目 (dos命令行 pycharm终端)
首先要cd到目标文件夹下
scrapy startproject mySpider(scrapy项目的名称)
第二步 创建爬虫程序
baidu.com douban.com
scrapy genspider demo "demo.cn" (demo是你爬虫的名字 demo.cn 爬取的范围/域名)
第三步 运行scrapy的命令
1 在终端 scrapy crawl 爬虫名字(demo)
2 可以运行py文件
我们先创建一个py文件(在项目下)
from scrapy import cmdline
cmdline.execute('scrapy crawl demo'.split())
cmdline.execute(['scrapy','crawl','demo'])
具体细节:
1.
报错在spider opened到 spider finished间查找
在settings.py内 LOG_LEVEL='WARNING'
2.
# response为我们封装了一些方法 xpath css 在获得selector对象的时候
# 如果要获得这个对象当中的文本数据
# 旧方法
# extract_first() 返回一条数据
# extract() 返回多条数据
# 新方法
# get()返回一条数据
# getall() 返回多条数据
注:***“不想当架构师的程序员,不是好程序员!”***
scrapy安装依赖别的库
用scrapy:
- ROBOTSTXT_OBEY = False
- UA
- LOG_LEVEL=‘WARNING’
附:爬虫程序:
import scrapy
from scrapy.http.response.html import HtmlResponse #response对象封装了xpath
class DoubanSpider(scrapy.Spider):
name = 'douban'
allowed_domains = ['douban.com']
start_urls = ['http://douban.com/']
def parse(self, response):
# print('* '*20)
# print(response)
# print(type(response))
# print('* '*20)
li_list=response.xpath('//div[@class="side-links nav-anon"]/ul/li')
# dict1={}
for i in li_list:
dict1 = {}
dict1['name'] = i.xpath('a/em/text()').get()
if dict1['name']==None:
dict1['name']=i.xpath('a/text()').get()
print(dict1)
本文详细介绍了Scrapy爬虫框架,包括其优势、工作流程及快速入门步骤。通过实例展示了如何创建Scrapy项目,设置配置,以及使用XPath解析网页数据。文章还提及了Scrapy的可配置性、可扩展性,以及在处理请求和响应时中间件的作用。最后,给出了一个简单的Douban网站爬虫示例,用于抓取网页标题。
1213

被折叠的 条评论
为什么被折叠?



