携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情 >>
爬取某车网全部汽车品牌信息
Hello 大家好,这篇文章带来的是最简单的爬虫demo,本文以爬取某车网所有品牌的车辆信息为例。后续会做爬取车辆详细信息的。
注意:- 仅供参考学习使用,不要用于其他用途!
使用配置
- python 3.8
- 请求包:requests
- 解析包:lxml
注意:本次使用的是xpath解析,当获取到网页源码时也可以使用正则表达式解析。
1.分析
web与服务端交互一般有两种情况,前后端分离与前后端不分离,我们第一步首先需要判断项目是前后端分离的还是前后端不分离的,如果前后端分离则爬取就变得很简单,可以直接使用访问接口的方案获取json数据,然后直接解析json就可以了。如果是前后端不分离我们就要使用一些解析工具从网页源码中获取我们真正需要的信息。
如何判断是否分离?
那么如何判断需要爬取的网站是否是前后端分离的呢?最简单的方法就是当元素加载完毕后我们点击鼠标右键,选择查看网页源代码。然后搜索源码中是否包含我们需要的信息。
以某车网为例:
由图中我们看到汽车品牌已被包含在源码中,所以我们代码模拟访问网站拿到源码后我们再使用解析方式解析出我们需要的数据。
模拟浏览器请求数据
使用requests包中的get请求直接请求网站。拿到源码后使用UTF-8的编码方式,再使用 etree.HTML解析成树的形式方便后续进行Xpath解析。
resp = requests.get('https://car.yiche.com/xuanchegongju/')
resp.encoding = 'utf-8'
html = etree.HTML(resp.text)
有时我们这样直接请求会遇到请求失败的情况,什么原因呢?可以看下一篇文章。