【Python网络爬虫】企查查高级搜索及批量查询接口爬虫

写在前面:

  1. 本文所介绍的企查查爬虫代码需要用到cookie,且cookie所对应的账号需要为vip或以上等级具有高级搜索和批量查询的功能,无此功能的账号暂不支持;

  1. 本文所介绍的是在其他人分析了前端headers哈希加密后的基础上的进一步补充和完善,并会提供完整的请求代码;

  1. 本文所提供的逻辑和代码仅供学习交流,严禁用于商业或非法用途,否则由此产生的一切后果均与作者无关。


一. headers前端哈希逆向加密

本文所需要爬取的是企查查的高级搜索功能的预搜索和批量搜索两个接口,分别为:

https://www.qcc.com/api/search/searchCount

https://www.qcc.com/api/search/searchMulti

https://gxzv.com/blog/qcc_headers_hash/?f=readme 该篇文章中,博主已详细介绍和解释了企查查高级查询中的headers哈希加密的逻辑,并给出了核心破解代码,本部分将会在这基础上进行补充。

引用的文章中有一个这个参数并没有给出详细的思路和解决方案:

在引用的文章中,这个win_tid是一个写死的参数,且是作为r_default函数的一个参数进行传递的,用于生成哈希参数键值对里面的value。但实际上这个win_tid参数并不是写死的,而是通过前面的http请求预先获取的:

通过在前端数据关键词查询,我们发现,在https://www.qcc.com/web/search/advance?hasState=true 这个请求中,返回的html数据中含有pid和tid参数,并且是传入到window对象中,tid是通过传入到r_default函数中的一个参数,而pid则是数据接口请求中headers的x-pid部分:

因此,需要有一个前置的请求预先获取这部分的pid和tid,代码如下:

import requests
import re

cookie = ''

def get_pid_tid():
    url = 'https://www.qcc.com/web/search/advance?hasState=true'

    headers = {
        'accept-encoding': 'gzip, deflate, br'
        ,'accept-language': 'zh-CN,zh;q=0.9'
        ,'cache-control': 'max-age=0'
        ,'cookie': cookie
        ,'referer': 'https://www.qcc.com/'
        ,'sec-fetch-dest': 'document'
        ,'sec-fetch-mode': 'navigate'
        ,'sec-fetch-site': 'same-origin'
        ,'sec-fetch-user': '?1'
        ,'upgrade-insecure-requests': '1'
        ,'user-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'''
    }

    res = requests.get(url, headers=headers).text
    try:
        pid = re.findall("pid='(.*?)'", res)[0]
        tid = re.findall("tid='(.*?)'", res)[0]
    except:
        pid = ''
        tid = ''

    return pid, tid

二. 数据获取和注意事项

通过接口返回的数据为json结构,只需要调用json库就可以清理数据。

需要注意,哈希加密中,需要传入的参数有:url、data、tid三个部分。

url为其中一个传入的参数,在两个请求中,该参数并不一样,在searchcount的api中,url为/api/search/searchcount;在searchmulti中,url为/api/search/searchmulti

另外,data作为其中的一个参数,在两个api中的请求亦有所不同,searchcount中的data含有"count": True的部分,searchmulti中并无该部分,两个data的参数请求有不一样的地方。


三. 文章引用和代码

参考文章:https://gxzv.com/blog/qcc_headers_hash/?f=readme

代码链接:https://github.com/moyuweiqing/qcc_searchmulti

  • 4
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
要使用Python爬虫来进行企查查的数据获取,你首先需要获取到对应的pid和tid。这部分可以通过发送HTTP请求并解析返回的页面来实现。你可以使用Python的requests库发送GET请求,并设置合适的请求头和cookie来模拟登录状态。然后,你可以使用正则表达式或其他方法从返回的页面中提取pid和tid的值。这样,你就可以在后续的请求中使用这些值来获取企查查的数据了。 另外,关于Python电影爬虫的数据统计展示案例,你可以以豆瓣电影TOP250为例进行演示。你需要抓取每一部电影的名字、描述信息(包括导演、主演、电影类型等等)、评分以及电影中最经典的部分。你可以使用Python爬虫库(如BeautifulSoup或Scrapy)来解析HTML页面,并提取所需的信息。然后,你可以将这些数据进行统计和展示,可以使用数据可视化库(如matplotlib或seaborn)来创建图表和图像来呈现数据。 需要注意的是,在进行企查查爬虫时,你需要使用带有vip或以上等级的账号,并且该账号具有高级搜索批量查询的功能。如果账号没有这些功能,则无法支持企查查爬虫。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【Python网络爬虫企查查高级搜索批量查询接口爬虫](https://blog.csdn.net/moyuweiqing/article/details/128702742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python电影爬虫数据统计展示案例](https://download.csdn.net/download/whirlwind526/88261868)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

moyuweiqing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值