簡體   English   中英

Python selenium 無頭模式缺少元素

[英]Python selenium headless mode missing elements

問題已解決:我將我的用戶代理設置為與我正常瀏覽時使用的相同。 顯然在無頭模式下,您的程序將您的用戶代理更改為“無頭”,亞馬遜一定已經抓住了這一點並阻止了它。 請閱讀以下原始問題:


我正在使用 selenium 來抓取亞馬遜搜索結果頁面。 當我結束它時,我將我的抓取轉移到無頭模式,因為它可以節省效率。 但是在無頭模式下,某些頁面元素不可用,例如贊助品牌。 使用非無頭模式時它工作得非常好,但即使在設置以下選項后使用無頭模式也失敗:

options = Options()
#options.headless = True
options.add_argument("--window-size=1920,1080")
options.add_argument("--disable-extensions")
options.add_argument("--proxy-server='direct://'")
options.add_argument("--proxy-bypass-list=*")
options.add_argument("--start-maximized")
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
driver = webdriver.Chrome(options=options)

PS:我嘗試使用和不使用評論部分以及僅評論部分。

為了清楚起見,我截取了每個示例:是它在無頭模式下運行時的樣子,也是它通常的樣子(沒有無頭模式以及普通用戶瀏覽)。 我想知道當我在無頭模式下運行贊助品牌信息時,還需要添加什么才能顯示贊助品牌信息。 我認為這可能是 JavaScript 無法與瀏覽器正常通信的問題?

一如既往,提前謝謝你!!

使用最新的谷歌瀏覽器 v95.0

  • 當您使用普通的google 瀏覽器時,正在使用以下

     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36
  • 當您使用瀏覽器時,正在使用以下

     Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36

額外的Headless參數/屬性的存在被攔截為 因此,您會看到差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM