我正在尝试通过网络抓取网页。但是,网站本身不允许右键单击功能来检查元素或页面源。另外,当我打印解析后的html文本时,结果只有body标签,并没有显示body标签内的信息。
from selenium import webdriver
import bs4 as bs
import urllib.request
driver = webdriver.Chrome(executable_path=r'PATH')
driver.get("website.com")
assert "Title" in driver.title
sauce = urllib.request.urlopen('website.com').read()
soup = bs.BeautifulSoup(sauce, 'html.parser')
print(soup)
我希望从汤中得到实际的 HTML(特别是 body 标签之间的 HTML);然而,我只得到
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>Title</title>
</head>
<body></body>
</html>
我对网络抓取比较陌生;但是,我以前从未遇到过这个问题。它是特定于站点的吗?当我使用 chrome 扩展程序时,我可以允许右键单击,只有这样,我才能检查页面源代码(并且 body 标签中有 HTML 和标签)。
最佳答案
您可以尝试仅使用 Python/Selenium 获取正文标签信息,并查看页面源是否与您在问题中发布的内容有任何不同。这将有助于缩小问题范围。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("website.com")
html = driver.page_source
print(html)
如果这产生与您在问题中发布的 HTML 相同的结果,那么问题可能出在网站本身,而不是您的代码。
关于python - 网站不允许右键单击,网络抓取不显示正文标签之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58193080/