2019-02-27

爬蟲遇到的問(wèn)題:關(guān)于網(wǎng)頁(yè)需要跳轉(zhuǎn)后才能訪問(wèn)的問(wèn)題

有時(shí)候訪問(wèn)一些網(wǎng)頁(yè),顯示網(wǎng)頁(yè)需要等待5s才能跳轉(zhuǎn)到所需要的網(wǎng)頁(yè):Your browser will redirect to your requested content shortly;

這是為了防止是爬蟲去訪問(wèn),requests沒(méi)有提供相應(yīng)的方法,如果每次用chromedriver訪問(wèn)影響效率太低下;

經(jīng)觀察網(wǎng)頁(yè)首次打開(kāi)會(huì)出現(xiàn)需要等待的問(wèn)題,再次刷新就不會(huì)了,那應(yīng)該是設(shè)置了cookie的問(wèn)題;

復(fù)制cookie跑下程序,訪問(wèn)結(jié)果就是想要的json數(shù)據(jù),那就證明首次訪問(wèn)設(shè)置了cookie,后面就一直刷新就直接訪問(wèn)數(shù)據(jù)了;

復(fù)制的cookie過(guò)一段時(shí)間再訪問(wèn)還是會(huì)跳出需要等待5s跳轉(zhuǎn)的問(wèn)題,說(shuō)明cookie會(huì)過(guò)期;

解決思路:

首次使用chromedriver訪問(wèn)獲取cookie,再用request.session保持cookie更新,使用無(wú)頭瀏覽器拿到cookie后再訪問(wèn)仍不OK,經(jīng)排查是user-agent和chromedriver訪問(wèn)時(shí)的user-agent不一樣,需要設(shè)置無(wú)頭瀏覽器的user-agent,再訪問(wèn)就OK了,代碼如下:

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument('--headless')

chrome_options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36')? ?# 此處設(shè)置的user-agent要和后面每次訪問(wèn)的user-agent一致才不會(huì)報(bào)錯(cuò)

chrome_options.add_argument('--no-sandbox')

driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get(url)

time.sleep(10)

cookies = {}

for cookie in driver.get_cookies():

cookies[cookie['name']] = cookie['value']

print(cookies)

s = requests.Session()

s.cookies = requests.utils.cookiejar_from_dict(cookies, cookiejar=None, overwrite=True)

driver.quit()

res = s.get(url, headers=headers)

print(res)

再拿著這個(gè)url就可以去反復(fù)請(qǐng)求url都不會(huì)跳出需要等待5s的問(wèn)題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • selenium+python配置chrome瀏覽器的選項(xiàng) 1. 背景 在使用selenium瀏覽器渲染技術(shù),爬取...
    朝畫夕拾閱讀 9,313評(píng)論 0 5
  • MySQL 死鎖 兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而造成的一種互相等待的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)...
    Impossible安徒生閱讀 343評(píng)論 0 0
  • 1、安裝 官網(wǎng)下載源碼:http://www.redis.cn/[http://www.redis.cn/]htt...
    晨曦_zdq閱讀 3,183評(píng)論 0 0
  • 今天學(xué)習(xí)了掃除我們心地的灰塵,主講了三顆心,即恭敬心,感恩心和精進(jìn)心!所以在以后的生活與工作中我們要謙虛謹(jǐn)慎,掃除...
    陳夢(mèng)堯閱讀 622評(píng)論 0 0
  • 上午去了農(nóng)場(chǎng),把建材給了秋爹,他蠻高興的,應(yīng)該有不少東西能用得上。 去了譚良師傅家,把除草播種的事情交代了給他們兩...
    小貼士閱讀 300評(píng)論 0 0

友情鏈接更多精彩內(nèi)容