【问题标题】:Python BeautifulSoup resourcesPython BeautifulSoup 资源
【发布时间】:2022-01-04 15:13:56
【问题描述】:

那么,你好。 Python初学者和相当新的在这里。我实际上并不想这样做,但我似乎无法在任何地方找到任何答案。所以我只是(或者我想)想刮this site 得到一个随机词。我似乎无法找到一种有效的方法来使用哪些标签来过滤 html 代码。任何建议或好的资源将不胜感激!另外,这是我的代码:

url = 'https://www.randomlists.com/random-words?dup=false&qty=1'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
review_text = soup.find_all(class_='support')
print(review_text)
>> []

我一直在更改 find_all() 参数,但我找不到正确的参数

【问题讨论】:

标签: python web-scraping


【解决方案1】:

首先,尝试在 youtube 上找到一些基本教程,以了解如何废弃基本网站以及一切如何整体运作。 之后,我建议你开始学习this book并练习。

【讨论】:

  • 你认为我没有?没有人真正解释如何选择标签,他们只是知道,因为他们已经对程序进行了预编码!我会检查这本书,谢谢
  • 考虑使用selectorgadget.com来选择合适的标签!
【解决方案2】:
【解决方案3】:

随机词是在页面上使用 JavaScript 生成的。换句话说,当您的浏览器向服务器发送请求,并获得 HTML(初始 DOM)、CSS 和 JavaScript 文件作为响应时。您的浏览器将执行 JavaScript,并将元素(随机世界)插入 HTML(现在是修改后的 DOM)。

当你使用requests.get(url)时,你会得到HTML(初始DOM),你不能刮掉随机词(因为它不存在)!

因此,为了获取 HTML(修改后的 DOM),您必须在 JavaScript 执行后对页面进行抓取。

这个有很多解决方案,请参考这个post


PS。如何验证随机词是由 JavaScript 生成的?

Disable JavaScript在您的浏览器中,然后重新加载页面,您将看不到随机单词。

【讨论】:

  • 现在说得通了,这就是为什么在查看源代码时我找不到生成单词的块,因为它在“检查”中...谢谢伙计。现在我有了另一篇文章,这已经解决了是啊......我只是暂时禁用了 JavaScript,现在显示了单词
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 2012-10-05
相关资源
最近更新 更多