国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲

這篇具有很好參考價值的文章主要介紹了【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

寫在前面:

  1. 本文所介紹的企查查爬蟲代碼需要用到cookie,且cookie所對應的賬號需要為vip或以上等級具有高級搜索和批量查詢的功能,無此功能的賬號暫不支持;

  1. 本文所介紹的是在其他人分析了前端headers哈希加密后的基礎上的進一步補充和完善,并會提供完整的請求代碼;

  1. 本文所提供的邏輯和代碼僅供學習交流,嚴禁用于商業(yè)或非法用途,否則由此產生的一切后果均與作者無關。


一. 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哈希加密的邏輯,并給出了核心破解代碼,本部分將會在這基礎上進行補充。

引用的文章中有一個這個參數(shù)并沒有給出詳細的思路和解決方案:

【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲

在引用的文章中,這個win_tid是一個寫死的參數(shù),且是作為r_default函數(shù)的一個參數(shù)進行傳遞的,用于生成哈希參數(shù)鍵值對里面的value。但實際上這個win_tid參數(shù)并不是寫死的,而是通過前面的http請求預先獲取的:

【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲
【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲

通過在前端數(shù)據(jù)關鍵詞查詢,我們發(fā)現(xiàn),在https://www.qcc.com/web/search/advance?hasState=true 這個請求中,返回的html數(shù)據(jù)中含有pid和tid參數(shù),并且是傳入到window對象中,tid是通過傳入到r_default函數(shù)中的一個參數(shù),而pid則是數(shù)據(jù)接口請求中headers的x-pid部分:

【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲

因此,需要有一個前置的請求預先獲取這部分的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

二. 數(shù)據(jù)獲取和注意事項

通過接口返回的數(shù)據(jù)為json結構,只需要調用json庫就可以清理數(shù)據(jù)。

需要注意,哈希加密中,需要傳入的參數(shù)有:url、data、tid三個部分。

url為其中一個傳入的參數(shù),在兩個請求中,該參數(shù)并不一樣,在searchcount的api中,url為/api/search/searchcount;在searchmulti中,url為/api/search/searchmulti

另外,data作為其中的一個參數(shù),在兩個api中的請求亦有所不同,searchcount中的data含有"count": True的部分,searchmulti中并無該部分,兩個data的參數(shù)請求有不一樣的地方。


三. 文章引用和代碼

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

代碼鏈接:https://github.com/moyuweiqing/qcc_searchmulti文章來源地址http://www.zghlxwxcb.cn/news/detail-437727.html

到了這里,關于【Python網絡爬蟲】企查查高級搜索及批量查詢接口爬蟲的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包