不同的html内容与机器人浏览器使用硒网络驱动程序而不是人类浏览器



我正在尝试使用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

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

我通过模仿鼠标移动解决了问题。所以现在在点击元素之前,我使用selenium网络驱动程序。用于模拟鼠标移动的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)

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

最新更新