【问题标题】:Different html content with robot browser using selenium webdriver instead of human browser使用 selenium webdriver 而不是人类浏览器的机器人浏览器的不同 html 内容
【发布时间】:2021-06-03 11:28:08
【问题描述】:

我正在尝试使用 python selenium webdriver 解析网页。 我在 html 内容中发现了一些东西。当我使用机器人浏览器而不是使用人类浏览器获得相同的页面时,情况会有所不同。 例如我得到的网页的一部分:

<p>
  <label>
    <span>
      Some text 1
      <br>
      <i>header 1</i>
      Some text 2
      <br>
      <i>header 2</i>
      Some text 3
      <br>
      <i>header 3</i>
      Some text 4
    </span>
  </label>
</>

在人类浏览器中我按原样得到它,但在机器人浏览器中我没有一个部分得到它,我错过了header 2Some text 3。 我试图分析人类浏览器和机器人浏览器中的请求标头以找到差异,我找到了一个。在人工请求标头中没有 cookie。但是在请求标头中的机器人浏览器中我可以看到这个

cookie: _ga=GA1.2.153230535.1622710383; _gid=GA1.2.1454651548.1622710383; __gads=ID=fb2caae82787b530-2265cda036c80043:T=1622710436:RT=1622710436:S=ALNI_MZ0bzRzYOmpiZrGnBzbdMQl7UHCRw

我不明白为什么会这样。谁能解释一下?服务器如何区分我的机器人浏览器并发送不同的内容而不是人类浏览器?

【问题讨论】:

  • 问站长,您没有发布代码或网站域名。
  • @Wonka,我不认为网站所有者喜欢从他们的网站解析数据))

标签: python html selenium web-scraping


【解决方案1】:

我通过模仿鼠标移动解决了我的问题。所以现在在点击元素之前,我使用 selenium webdriver.ActionChains 来模拟鼠标移动。

search_input = browser.driver.find_element_by_xpath('//input[@class="search_input"]')
sleep(0.5)
browser.action_chain.move_to_element(search_input)
sleep(0.5)
browser.action_chain.click(search_input)
sleep(0.5)
search_input.clear()
sleep(0.5)

现在我在人类浏览器中获得的所有内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    相关资源
    最近更新 更多