目錄
一、思想
二、代碼
?????????有關(guān)爬蟲一些報(bào)錯(cuò)解決,或是爬蟲工具的使用及其他問題的,可以看看我的爬蟲專欄:博主_zkkkkkkkkkkkkk的爬蟲專欄
一、思想
? ? ? ? selenium可以用來模擬用戶操作的python第三方包,而requests則是用來做接口請求。兩者一結(jié)合,可能在某些方面優(yōu)于單個(gè)包的爬蟲。在requests請求時(shí),我們都知道requests是需要headers信息。所以自動獲取cookies等headers里關(guān)鍵信息就至關(guān)重要,而selenium因?yàn)槭谴蜷_一個(gè)瀏覽器模擬用戶操作的特性,使它能夠獲取到它自己打開的頁面cookies。我們使用這個(gè)cookies傳入requests,然后再使用requests做爬蟲即可。文章來源:http://www.zghlxwxcb.cn/news/detail-572316.html
二、代碼
? ? ? ? 下面一個(gè)簡單例子來說明(可能有些網(wǎng)站頁面是不支持這樣的,具體可以自行測試下)文章來源地址http://www.zghlxwxcb.cn/news/detail-572316.html
from selenium import webdriver
import requests
# selenium啟動并打開 http://tpi.zhonju.cn/ 頁面
chrome = webdriver.Chrome()
chrome.get('http://tpi.zhonju.cn/')
# 打印頁面cookies信息 是一個(gè)dict類型的對象
print(chrome.get_cookies())
# cookies做拼接
cookies_list = [item["name"] + "=" + item["value"] for item in chrome.get_cookies()]
cookies = ';'.join(it for it in cookies_list)
print(cookies)
# 得到cookies后,即可使用requests來做接口爬蟲
headers = {
'Content-Type':'application/json;charset=UTF-8',
'Cookie':f'{cookies}',
'Connection':'keep-alive',
'Accept':'text/html,application/xhtml+xml,application/xml',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'
}
req = requests.get('http://xxx.com/',headers=headers)
# 以文本輸出請求結(jié)果
print(req.text)
# 以json輸出(前提是接口返回結(jié)果是json或dict類型的)
print(req.json)
# 以二進(jìn)制輸出
print(req.content)
# 最后關(guān)閉selenium打開的頁面,cookies也隨之失效
chrome.quit()
到了這里,關(guān)于selenium自動獲取cookies用于requests做接口請求爬蟲的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!