【问题标题】:BeautifulSoup output stays []BeautifulSoup 输出保持 []
【发布时间】:2016-03-16 11:21:39
【问题描述】:

我正在尝试使用 BeautifulSoup + python 请求从网站上抓取文本。但它只是将 [] 作为输出。

from bs4 import BeautifulSoup
import requests

url = "http://nos.nl/artikel/2093082-steeds-meer-nekklachten-bij-kinderen-door-gebruik-tablets.html"
r  = requests.get(url)

soup = BeautifulSoup(r.content)

data = soup.find_all("div", {"class": "article_title"})

print data

输出:

[]

我试过了;

> data = soup.find_all("div", {"class": "article_title"}
> data = soup.find_all("div", class_="article_title") data =
> data = soup.find_all("div", class_="article")

我做错了什么?

【问题讨论】:

  • 您确定该课程存在于网站上吗?你检查过 HTML 吗?

标签: python import beautifulsoup python-requests bs4


【解决方案1】:

有两个问题:

  • 网站上使用的标签是h1,而不是div
  • 类名是article__title(这是两个下划线!)。

所以你想要的是:

data = soup.find_all("h1", {"class": "article__title"})

这给了我们:

[<h1 class="article__title">Steeds meer nekklachten bij kinderen door gebruik tablets</h1>]

顺便说一句,我使用我的 Firefox 网络检查器快速获取此信息 ;-) Chrome、Internet Explorer、Safari 和我所知道的所有其他浏览器都内置了类似的工具。我强烈建议你至少学会使用它们的基础知识,因为它会让你的生活变得更轻松!

【讨论】:

  • 该死的,我应该先检查一下,对不起,谢谢!
  • 我想将我的内容保存为 .txt 文件,但我又卡住了,您能帮帮我吗?
  • @Danisk 如果这是一个不同的问题,那么你应该问一个不同的问题;-)如果它解决了你的问题,你还应该将这个答案标记为已接受:-) 这样其他人可以看到它已经有一个修复,我得到它的积分! (哇哦!)
【解决方案2】:

第一个问题是the website 中没有article_title 标签。如果你使用article__title(两个下划线)它会返回一些东西,因为那是一个标签。查看 html 源代码,看看实际存在哪些标签!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2021-11-16
    相关资源
    最近更新 更多