【发布时间】:2016-08-01 01:17:16
【问题描述】:
我开始在网站抓取工具上取得进展,但遇到了两个障碍。首先是代码:
import requests
from bs4 import BeautifulSoup
r=requests.get("http://www.nytimes.com")
soup=BeautifulSoup(r.text)
headlines=soup.find_all(class_="story-heading")
for headline in headlines:
print (headline)
问题
-
为什么你必须使用
find_all(class_= blahblahblah)而不仅仅是find_all(blahblahblah)?我意识到story-heading是它自己的一个类,但我不能只使用find_all搜索所有HTML 并获得相同的结果吗? BeautifulSoup 的注释显示 find_all.a 返回 HTML 文档中的所有锚标记,为什么find_all("story-heading")不做同样的事情?是不是因为如果我尝试这样做,它只会在 HTML 中找到所有“故事标题”的实例并返回这些实例?我试图让 python 返回该标签中的所有内容。这是我最好的猜测。
为什么我会收到所有这些额外的垃圾代码?我的请求是否应该只显示故事标题标签中的所有内容?我收到的文本比我想指定的要多得多。
【问题讨论】:
-
将您的代码格式化为代码,而不仅仅是帖子中的常规文本,以便我们阅读
标签: python web beautifulsoup screen-scraping