开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,点击查看活动详情
创建项目
首先,我们用scrapy
创建一个项目。
scrapy startproject scrapy_carhome
自定义爬虫文件
项目创建好了,那就需要创建我们自定义的爬虫文件了。
- 定位爬取接口
- 进入spiders目录
- 创建自定义爬虫文件
- 补充路径
在目标页面打开开发者调试工具,获取到请求接口。
# 进入**spiders**目录
cd .\scrapy_carhome\scrapy_carhome\spiders\
# 创建自定义爬虫文件
scrapy genspider carhome car.autohome.com.cn/price/brand-33.html
可以看到文件生成出来了,但是里面的路径却与我们需要的那个路径有所不同,那么就需要我们手动给他补上后面的目录了。
准备工作做好了,那么就可以运行一下看能否正常进入parse
函数中了
数据抓取
前面的准备工作一切正常,剩下的就是抓取我们所需的数据了。
定位车型
我们先打开目标网站,通过xpath
插件定位出所有的车型
通过尝试拿到了xpath
语句之后,到我们自定义的爬虫文件中先尝试下看能不能正常获取到数据
车型列表可以正常拿到,通过extract
函数,我们得到了实际所需要的数据。
def parse(self, response):
title_list = response.xpath('//div[@class="main-title"]/a/text()')
for title in title_list:
print(title.extract())
定位价格
车型拿到了,剩下的就是拿到该车的价格了,老样子,还是先通过xpath
在浏览器定位好公式。
拿到公式之后,老样子,先测试下能不能在代码中正常获取到。
效果正常,那么我们就可以将两个内容合并起来了。
def parse(self, response):
title_list = response.xpath('//div[@class="main-title"]/a/text()')
price_list = response.xpath('//span[@class="font-arial"]/text()')
for i in range(len(title_list)):
title = title_list[i].extract()
price = price_list[i].extract()
print(title, price)
就这样,仅仅只需要写6行代码,我们就可以拿到自己需要的数据了,比起前面又是配置这,又是配置那的,是不是方便很多?