一個鏈接在Chrome瀏覽器上直接打開是沒有問題的,但是如果我通過browser = webdriver.Chrome(),然后browser.get(url)打開,就報403,為什么呀?selenium的webdriver.Chrome()不是調chrome直接打開對應的網頁嗎
uj5u.com熱心網友回復:
先get('www.baidu.com') 看是否正常。 如果正常, 那再看下否有 http https 的區別 , 先在selenium 打開的瀏覽器里走一遍目標網站訪問流程selenium的webdriver.Chrome() 是通過 chromedriver 來呼叫 chrome , 是remote 不是直接打開。
uj5u.com熱心網友回復:
報的什么錯?導包了嗎?原始碼發出來看看?uj5u.com熱心網友回復:
下面這個跑反正是403,如果那個網站在瀏覽器上打開又沒有問題
def chromeBrowser():
# 創建chrome引數物件
opt = webdriver.ChromeOptions()
opt.add_argument(
'User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36')
opt.add_argument('--no-sandbox') # 解決DevToolsActivePort檔案不存在的報錯
opt.add_argument('window-size=1920x3000') # 指定瀏覽器解析度
opt.add_argument('--disable-gpu') # 谷歌檔案提到需要加上這個屬性來規避bug
# opt.add_argument('--hide-scrollbars') #隱藏滾動條, 應對一些特殊頁面
# opt.add_argument('blink-settings=imagesEnabled=false') #不加載圖片, 提升速度
# opt.add_argument('--headless') # 瀏覽器不提供可視化頁面. linux下如果系統不支持可視化不加這潭訓啟動失敗
# 創建chrome無界面物件
browser = webdriver.Chrome()
browser.maximize_window()
browser.get('http://www.iwencai.com/diag/block-detail?codeType=stock&codes=603501&info=%7B%22view%22%3A%7B%22nolazy%22%3A1%2C%22parseArr%22%3A%7B%22_v%22%3A%22new%22%2C%22dateRange%22%3A%5B%2220190101%22%2C%2220191231%22%5D%2C%22staying%22%3A%5B%5D%2C%22queryCompare%22%3A%5B%5D%2C%22comparesOfIndex%22%3A%5B%5D%7D%7D%7D&logid=&pid=6935')
browser.implicitly_wait(50)
f = open('html.txt', 'w', encoding='utf-8') # 需要制定檔案編碼
f.write(browser.page_source.encode('utf-8').decode())
f.close()
browser.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227369.html
