【问题标题】:No Output with Beautiful Soup find_all美丽的汤没有输出 find_all
【发布时间】:2016-09-26 11:24:46
【问题描述】:
import requests
from bs4 import BeautifulSoup

urla = 'https://www.tumblr.com/search/hello'

r = requests.get(urla)

soupa = BeautifulSoup(r.content, 'html.parser')

links = soupa.find_all("div", {"class": "header_mage_wrapper has_avatar"})

for link in links:

    print link

所以在我运行此代码后,没有任何中断,我得到退出代码 0(使用 PyCharm),但是根本没有输出。

如果我带走 {"class": "header_mage_wrapper has_avatar"}) 所以只有find_all(“div”),它工作得很好,并拉出所有的div。我在不同的网站上尝试了相同的代码并且没有任何问题,我确定这是我还不知道的小东西,我只使用 BeautifulSoup 一两天,但我找不到问题,因为没有进行编码错误。

谢谢!

【问题讨论】:

  • 在您提供链接的页面的源代码中,我找不到header_mage_wrapper has_avatar。你能检查一下吗?
  • 你是如何确定这些类中有一个 div 的?并不是说有任何这样的类,而是header_mage_wrapper 看起来像是header_image_wrapper 的拼写错误。
  • 您可能正在尝试解析 javascript,这需要做一些不同的事情,正如 Martijn 所提到的 - 您可能没有正确拼写该类。
  • 我的拼写肯定是正确的,但我认为它是 javascript 是有道理的,因为当我检查网页上的元素时它弹出就好了,但是当使用请求时拉出它不会在那里弹出的 html,所以我将检查如何使用 javascript。谢谢大家的cmets。

标签: python beautifulsoup


【解决方案1】:

这不会为您提供任何输出:

import requests
from bs4 import BeautifulSoup
urla = 'https://www.tumblr.com/search/hello'
r = requests.get(urla)
soup = BeautifulSoup(r.text)

for link in soup.find_all('div', class_="header_image_wrapper has_avatar"):
    print(link.get('class'))

这是因为 get() 没有获取 header_image_wrapper 类。 它获取的最低死者是search_blog_row

您正在搜索的header_image_wrapper 会根据您的搜索动态加载。

所以你可以试试POST,如图所示here

我建议使用Tumblr API 来获取结果。

【讨论】:

  • 我认为您对 API 的看法是正确的。我将学习如何使用它。
  • @Sweetcheeks12354 好。
猜你喜欢
  • 2020-12-31
  • 1970-01-01
  • 2014-07-29
  • 2020-07-17
  • 2019-04-06
  • 2021-06-04
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多