Python—Scrapy快速上手

一、创建一个爬虫

1.创建scrapy项目

1.1.安装Scrapy
pip install scrapy
 1.2创建scrapy项目
# myscrapy01是项目名,可以自定义
scrapy startproject scrapydemo

自动创建了一个名为scrapydemo的目录:

文件说明:

名称作用
scrapy.cfg项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。(真正爬虫相关的配置信息在settings.py文件中)
items.py设置数据存储模板,用于结构化数据,如:Django的Model
pipelines数据处理行为,如:一般结构化的数据持久化
settings.py配置文件,如:递归的层数、并发数,延迟下载等
spiders爬虫目录,如:创建文件,编写爬虫规则

其余的都是我创建的嘿嘿嘿,别在意细节。

cd .\scrapydemo\
# douban是爬虫名,douban.com是爬取页面的地址,一般写域名即可(不用写全路径)
scrapy genspider douban douban.com

打开对应路径并找到文件:

 咱们只看douban.py就行喽!

1.3启动爬虫
from scrapy import cmdline
#启动douban文件,并将爬取的数据保存成json文件
cmdline.execute("scrapy crawl douban-o douban.json".split())

 二、数据提取

1.Reseponse对象获取选择器

response.xpath('//span/text').get()
response.css('span::text').get(
方法名描述
extract()、getall()它返回一个unicode字符串以及所选数据
extract_first()、get()它返回第一个unicode字符串以及所选数据
re()它返回Unicode字符串列表,当正则表达式被赋予作为参数时提取
xpath()它返回选择器列表,它代表由指定XPath表达式参数选择的节点
css()它返回选择器列表,它代表由指定CSS表达式作为参数所选择的节点

这样我们就可以拿取网页中的元素了

2.获取下一页的数据

next=response.css('.pager .next a::attr(href)').extract_first()
# 合成绝对路径
url= response.urljoin(next)
# 访问请求的回调函数
yield scrapy.Request(url=url, callback=self.parse,dont_filter=True)

上面代码,我们通过css选择器获取到页面中下一页按钮的属性链接,通过urljoin合成下一页的路径,写一个回调函数重调用,这样可以一直获取下一页的链接,拿取每页的数据 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值