首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫实战第一场

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181126G1WE7300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券