【问题标题】:Unable to get the expected html element details using Python无法使用 Python 获取预期的 html 元素详细信息
【发布时间】:2019-07-15 14:41:15
【问题描述】:

我正在尝试使用 Python 抓取网站。我已经能够成功地抓取它,但是预期的结果并没有得到。我认为这与网页的 JavaScript 有关。

我的代码如下:

driver.get(
        "https://my website")

soup=BeautifulSoup(driver.page_source,'lxml')
all_text = soup.text
ct = all_text.replace('\n', ' ')
cl_text = ct.replace('\t', ' ')
cln_text_t = cl_text.replace('\r', ' ')
cln_text = re.sub(' +', ' ', cln_text_t)
print(cln_text)

它没有提供网站详细信息,而是提供了以下数据。知道我该如何解决这个问题吗?

html, body {height:100%;margin:0;} You have to enable javascript in your browser to use an application built with Vaadin.........

【问题讨论】:

  • 您能否分享您正在尝试的 url 或 html 并提及您的预期输出
  • 您是否尝试过预期的条件来等待您的元素出现?

标签: python-3.x selenium-webdriver beautifulsoup


【解决方案1】:

你为什么需要这个BeautifulSoup?它似乎不支持 JavaScript。

如果您需要获取网页文本,您可以使用 //html 的简单 XPath selector 获取 document root 并获取生成的 WebElementinnerText 属性

建议的代码更改:

driver.get(
        "my website")

root = driver.find_element_by_xpath("//html")

all_text = root.get_attribute("innerText")

【讨论】:

  • 感谢 Dmitri T。这行得通。今天对我来说也学到了很多东西。 :)
猜你喜欢
  • 2021-11-30
  • 1970-01-01
  • 2012-05-13
  • 1970-01-01
  • 2019-02-18
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-24
相关资源
最近更新 更多