我們要獲取這里的響應(yīng)的JSON數(shù)據(jù),但是它的請(qǐng)求頭里面帶有加密數(shù)據(jù),需要js逆向,或者RPC才能拿到,現(xiàn)在介紹一種方法,免去以上過(guò)程就可以輕松拿到響應(yīng)數(shù)據(jù)。
顯然上面的紅框是加密數(shù)據(jù)。?
?下面正式開(kāi)始
下載browsermob-proxy文件
首先要檢查電腦是否安裝了JDK8,高版本的好像不行,如果沒(méi)有安裝,則需要進(jìn)行安裝。這里不介紹了。下面下載兩個(gè)東西:
(1)python包的安裝:pip3 install browsermob-proxy
(2)組件下載地址:https://github.com/lightbody/browsermob-proxy/releases,下載之后解壓,后面會(huì)用到文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-618346.html
完整代碼:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-618346.html
import time
from browsermobproxy import Server
from selenium import webdriver
server = Server(".\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy.bat")
server.start()
proxy = server.create_proxy()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--proxy-server={0}'.format(proxy.proxy))
browser = webdriver.Chrome(options=chrome_options) # 打開(kāi)瀏覽器
browser.maximize_window() # 最大化窗口
url = '所要訪問(wèn)的網(wǎng)址'
# 這里要開(kāi)一個(gè)新的har,用來(lái)記錄下面打開(kāi)網(wǎng)址的請(qǐng)求記錄,起名為log
# 如果重復(fù)訪問(wèn)很多網(wǎng)站,那么每次都得新開(kāi)一個(gè)har,不然一直用一個(gè)har,
# 它會(huì)累積記錄所有的訪問(wèn)和請(qǐng)求數(shù)據(jù),每次新開(kāi)一個(gè)再去訪問(wèn),它只會(huì)記錄
# 當(dāng)前的網(wǎng)頁(yè)的請(qǐng)求
proxy.new_har("log", options={'captureHeaders': True, 'captureContent': True, 'captureBinaryContent': True})
browser.get(url)
time.sleep(60)
# 此處最好暫停幾秒等待頁(yè)面加載完成,不然會(huì)拿不到結(jié)果,我這里等待的是秒,自己根據(jù)情況調(diào)整
result = proxy.har
for entry in result['log']['entries']:
_url = entry['request']['url']
# entry每一個(gè)請(qǐng)求URL都對(duì)應(yīng)著一個(gè)response,我們只需要判斷URL找出自己想找的那個(gè)JSON就好
if "這里放你需要拿到的JSON數(shù)據(jù)的請(qǐng)求頭中的URL" == _url: #如果兩個(gè)相等,則可能是我們想要的數(shù)據(jù),因?yàn)檫@個(gè)URL可能有多個(gè),
# 在后面拿到數(shù)據(jù)之后再進(jìn)一步判斷即可
_response = entry['response']
_content = _response['content']
print(_content)
server.stop()
browser.quit()
到了這里,關(guān)于抓取網(wǎng)絡(luò)請(qǐng)求Network中的響應(yīng)JSON數(shù)據(jù),不用JS逆向和RPC,python selenium+browser-proxy的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!