|
|
|
|
公众号矩阵

我们一起分享一次实用的爬虫经验

一开始我以为很简单,我照着他给的网站,然后一顿抓包操作,到头来竟然没有找到响应数据,不论是在ALL还是XHR里边都没有找到任何符合要求的数据,真是纳闷。讲到这里,【杯酒】大佬一开始也放大招,吓得我不敢说话。

作者:Python进阶者 来源:Python爬虫与数据挖掘 |2021-11-24 07:56

大家好,我是Python进阶者。

前言

前几天铂金群有个叫【艾米】的粉丝在问了一道关于Python网络爬虫的问题,如下图所示。

不得不说这个粉丝的提问很详细,也十分的用心,给他点赞,如果大家日后提问都可以这样的话,想必可以节约很多沟通时间成本。

其实他抓取的网站是爱企查,类似企查查那种。

一、思路

一开始我以为很简单,我照着他给的网站,然后一顿抓包操作,到头来竟然没有找到响应数据,不论是在ALL还是XHR里边都没有找到任何符合要求的数据,真是纳闷。讲到这里,【杯酒】大佬一开始也放大招,吓得我不敢说话。

其实是想复杂了,一会儿你就知道了。

怀着一颗学习的心,我看了杯酒的代码,发现他构造的URL中有下图这个:

然后我再去网页中去找这个URL,可是这个URL在原网页中根本就找不到???这就离谱了,总不能空穴来风吧,事出必有因!

二、分析

原来这里有个小技巧,有图有真相。

之后根据抓包情况,就可以看到数据了。

在里边可以看到数据:

这里【杯酒】大佬查询的关键词是:数据,所以得到了好几页数据,而我和【艾米】都是直接查的:上海手术器械厂,这个只有一页,不太好观察规律,所以一直卡住了。

之后将得到的代码中的URL的关键词,改为:上海手术器械厂,就可以顺利的得到数据,是不是很神奇呢?

三、代码

下面就奉上本次爬虫的代码,欢迎大家积极尝试。

  1. # -*- coding: utf-8 -*- 
  2. import requests 
  3. import user_agent 
  4. from urllib import parse 
  5.  
  6.  
  7. def search(key_word): 
  8.     for page_num in range(1, 2): 
  9.         url = f'https://aiqicha.baidu.com/s/advanceFilterAjax?q={parse.quote(key_word)}&t=&p={str(page_num)}&s=10&o=0&f=%7B%7D' 
  10.         headers = { 
  11.             'User-Agent': user_agent.generate_user_agent(), 
  12.             'Referer''https://aiqicha.baidu.com/s?q=%E6%95%B0%E6%8D%AE&t=0'
  13.         } 
  14.         print(url) 
  15.         response = requests.get(url=url, headers=headers) 
  16.         print(requests) 
  17.         print(response.json()) 
  18.         # break 
  19.  
  20.  
  21. if __name__ == '__main__'
  22.     search('上海手术器械厂'

只需要将关键词换成你自己想要搜索的就可以了。

下图是运行的结果:

下图是原网页的截图,可以看到数据可以对的上:

四、总结 

我是Python进阶者。本文基于粉丝提问,针对一次有趣的爬虫经历,分享一个实用的爬虫经验给大家。下次再遇到类似这种首页无法抓取的网页,或者看不到包的网页,不妨试试看文中的“以退为进,投机取巧”方法,说不定有妙用噢!

【编辑推荐】

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区
  2. 四款超强大易用的管理工具,助你轻松玩转 Kubernetes
  3. Kodex:一款功能强大的隐私和安全工程工具包
  4. 在网络攻防的战场上,你需要一款All in One的应急处置工具
  5. 黑客工具 Burpsuite 插件开发
  6. 剑桥计算机博士推荐,毕业之前,我需要掌握这九个工具
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

带你轻松入门 RabbitMQ

带你轻松入门 RabbitMQ

轻松入门RabbitMQ
共4章 | loong576

57人订阅学习

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

14人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

42人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微