python抓取动态网页(如何获取动态网页的内容(运单)(号))

优采云 发布时间: 2022-03-12 01:28

  python抓取动态网页(如何获取动态网页的内容(运单)(号))

  最近接到一个朋友的请求,说需要保存和下载运单的记录,因为每个月都有几千个快递单。如果您手动复制内容,您可以在与快递公司发生纠纷时证明这一点。

  我的思路:

  1、如何获取动态网页的内容;

  2、输入参数必须有运单号,则需要从excel中读取运单号作为参数获取网页内容;

  3、得到信息后,将其处理为网页上显示的内容;

  4、将信息保存到 Excel。

  

  1、想到Python实现常规的静态网页抓取,经常使用urllib获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字

  1import urllib.request

2

3req = urllib.request.Request('http://python.org/')

4response = urllib.request.urlopen(req)

5the_page = response.read()

6

  那么我们爬取的网页是没有动态信息的,因为信息是通过js动态填充到网页中的。

  2、打开Chrome浏览器,使用Chrome的“开发者工具”找出谁是真正的内容提供者,在键盘上按F12调出这个工具;

  3、此时,选择“网络”选项卡,在地址栏中输入“此页面”

  

  以下是网页的分析过程

  

  然后我们根据每个请求找到我们想要的信息,如下

  

  接下来,我们切换到Header页面,看看,Get获取到的内容

  

  我们将

  请求网址:

  (账单号)/routes?app=bill&lang=sc®ion=cn&translate=

  复制到地址栏

  

  就是说我们可以通过这个链接获取我们想要的动态内容。

  4、真正的信息来源已经被捕获,剩下的就是用Python来处理这些页面上的字符了。

  5、传入单个数字作为参数,获取动态信息后,按照规律去除html内容,得到一个json字符串,然后我们就可以将其作为字符串处理了

  1def gethtml(waybill=''):

2 req = urllib.request.Request(

3 'http://www.。。。/service/bills/' + waybill + '/routes?app=bill&lang=sc&region=cn&translate=')

4 response = urllib.request.urlopen(req)

5 the_page = response.read().decode("utf8")

6 dr = re.compile(r']+>', re.S)

7 data = dr.sub('', the_page)

8

9 strinfo = re.compile('"')

10 rs = strinfo.sub('', data)

11 return rs

12

  这已经完成了我们整个需求中最关键的一步。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线