爬虫(scrapy框架)

scrapy框架
——下载页面
——解析
——并发
——深度

scrapy流程图

安装scrapy框架
Linux
pip3 install scrapy

Windows
a. pip3 install wheel
b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
c. 进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
d. pip3 install scrapy
e. 安装pywin32

创建项目:scrapy startproject day1229
创建spider:scrapy genspider chouti chouti.com
运行爬虫文件: scrapy crawl chouti --nolog

使用scrapy
1、指定初始的URL
2、解析响应内容,
(1)给调度器
(2)给item,pipline 做格式化和持久化

xpath使用规则
// —— 表示子孙中
.// —— 当前对象的子孙中
/ —— 儿子
/div —— 儿子中的div标签
/div[@id=“i1”] —— 儿子中的div标签且id=i1
obj.extract() —— 列表中的每一个对象转换为字符串 []
obj.extract_first() —— 列表中的每一个对象转换为字符串 ,列表中的第一个元素
//div/text() —— 获取某个标签的文本
a/@href —— 获取属性
a[start-with(@href, “link”)]/@href —— 找以link开始的
a[re:test(@href, “link\d+”)]/@href —— 正则

修改配置,才能在终端显示
settings.py下的
ROBOTSTXT_OBEY = False
需要爬取出内容时等号后应为False.
默认为True,就是要遵守robots.txt 的规则,那么 robots.txt 是什么?
robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,
它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页 不希望 你进行爬取收录。
在Scrapy启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。
当然,我们并不是在做搜索引擎,而且在某些情况下我们想要获取的内容恰恰是被 robots.txt 所禁止访问的。
所以,某些时候,我们就要将此配置项设置为 False ,拒绝遵守 Robot协议 !

seting配置

ROBOTSTXT_OBEY = False
DEPTH_LIMIT = 5             # 定制深度
DEPTH_PRIORITY = 0     # 优先爬取的深度

编写代码
1、name = ‘chouti’ # name不能省略
2、allowed_domains = [‘www.chouti.com’] # 允许的域名,可以是多个
3、start_urls = [‘https://dig.chouti.com/’] # 起始的URL地址
4、重写start_requests函数,指定初始处理请求的函数

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, callback=self.parse)

5、响应的response
response.url
response.body
response.text
response.meta = {} # 包含一个当前深度 {‘depth’:2}
6、采集数据
response.xpath(’//div[@id=“content-list”]/div[@class=“item”]’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值