为什么?urllib.urlopen.read()与源代码不对应?

2024-10-01 07:50:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取以下网页:

import urllib
urllib.urlopen("http://www.gallimard-jeunesse.fr/searchjeunesse/advanced/(order)/author?catalog[0]=1&SearchAction=1").read()

结果与我在使用googlechrome检查网页源代码时看到的结果不符。在

你能告诉我为什么会发生这种情况,以及我如何改进代码来克服这个问题吗?在

谢谢你的帮助。在


Tags: importhttp网页wwworderfrurllibadvanced
3条回答

您可以使用pythonselenium来解决您的问题。下面是一个代码示例。在

from selenium import webdriverr
url = "http://www.gallimard-jeunesse.fr/searchjeunesse/advanced/(order)/author?catalog[0]=1&SearchAction=1"
browser = webdriver.Firefox()
browser.get(url)
sleep(10)
all_body_id_html =  browser.find_element_by_id('body') # you can also get all html

然后根据你的选择来完成剩下的工作 浏览器实例的更多示例

^{pr2}$

您可以在Firefox中使用Selenium来解决这个问题,但在很多情况下,它可能并不适合,因为每次运行代码时都会弹出浏览器。另一个想法是使用像PhantomJS一样的无头broswer。在

最好的方法是使用mechanize库。通过pip安装机械化。在

pip install mechanize

然后可以使用以下代码:

^{pr2}$

它还提供了睡眠和执行脚本的选项。你可以在documentation.中阅读它们

{{css}不包括在Chrome}中的其他浏览器中,{1}中没有使用的css},这意味着从Chrome}中获取的是什么。。。在

因此区别,希望这是清楚的

相关问题 更多 >