Python爬虫实战第一场
咳咳,差点忘了Python爬虫部分是分成日记篇跟实战篇的了...
日记篇侧重分析讲解爬虫步骤,实战篇则侧重根据实际情况来实施爬取任务
好了,填坑开始
需求
获取某通快递用户投诉信息(约两三百条)
https://tousu.sina.com.cn/company/view/?couid=3201585302
小编大概计时了一下,处理整个需求总共花了三个小时左右,包括分析数据、提取方式、保存数据等
一、详细需求
以上是我们要获取的数据所在的基本页面,要求我们提取
投诉时间、投诉状态、投诉标题、投诉要求、投诉详情的url、
涉诉金额、发起投诉的内容
二、数据如何加载
首先我会从网页源代码中看看是否存在这些我们需要的数据
好的没有...
那么既然数据不在网页源代码中,再来看看是否是动态加载的(八成就是)
动态加载的有两条内容,第一张图中显然没有我们想要的数据,那么么第二个呢?
在这里看不太清楚,所以小编通过postman来模拟一下这个请求
无需添加请求头,cookie等,我们可以看到这就是我们想要的数据,再来看看这个url
page_size=10&page=1
其他的暂时不去看,这个page_size就是一页有10条投诉,page代表页码,那么我们可以想到改变页码应该就能获得对应页数的数据,事实也正是如此
此外我们也可以发现,投诉详情界面中的数据则是在网页源代码中
需要注意的是,返回的数据中没有直接包含投诉的状态,但是我们可以比较分析得到,这个status就代表的是投诉的状态
6:已回复,7:已完成 ,8:已关闭,4:处理中
到这一步我们已经知道数据是如何加载的和数据都在哪里,那么接下来就是数据的提取以及保存
三、数据提取中几个注意的点
碰到返回的数据不是正常的编码格式\xxxx
转换后就可以看到中文
遇到这种有类似补充投诉的情况,因为这两个或多个是同级的,所以可以用xpath会显得更方便
四、实战结果
我做的是圆通版
代码我放在了github上,有需要的可以拿
https://github.com/joelYing/All_Spider
领取专属 10元无门槛券
私享最新 技术干货