BeautifulSoup 输出保持 []

BeautifulSoup output stays []

我正在尝试从具有 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")

我做错了什么?

有两个问题:

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

所以你想要的是:

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

这给了我们:

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

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

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