![](/img/trans.png)
[英]Scrape websites and export only the visible text to a text document Python 3 (Beautiful Soup)
[英]Python Beautiful Soup scrape only if text match?
我刚开始学习美味的汤,一直在看视频并掌握了一些。 但是提供的示例,它们似乎已经在 HTML 中具有良好的结构,并且没有在任何地方搜索特定的单词。 我尝试做的是只打印提到的特定国家的信息,如果没有提到 - 它不应该打印。 稍后将构建 append 到文本文件。 我只是想抓住所有来自新西兰的人,但为了进行实验,我一直在使用美国,因为它的发布频率更高。
目前我的代码看起来像这样,它只是抓住了所有这些。
from bs4 import BeautifulSoup
import requests
source = requests.get('https://pogotrainer.club/?sort=worldwide').text
soup = BeautifulSoup(source, 'lxml')
trainer = soup.find('article')
for box in trainer.find_all('div', class_='media-body'):
print(box.text)
在一个教程中,我看到他们使用了 findNext,因为无论如何重要的是列出的朋友代码。 所以我试着这样做
usa = box.find(text="United States").findNext(class_="TCLink")
但是用 print(usa) 打印它,给我错误
AttributeError: 'NoneType' object 没有属性 'findNext'
以前,我也尝试过类似的东西
usa = soup.find(text="United")
但它打印
没有任何
即使看页面,它确实有它。 有人有建议吗?
提前致谢
AttributeError: 'NoneType' object has no attribute 'findNext'
让我们分解一下:
NoneType object
是box
.findNext
(实际上是一种方法)访问该attribute
,但由于 object 是None
,因此该语句没有意义。 您假设该box
不是None
,因此您必须确保您正在使用什么。 你可能想试试这个:
for box in trainer.find_all('div', class_='media-body'):
print(box)
始终尝试通过例如显式打印来了解您正在使用的内容。
这是 Python 的弱点之一(或优势,取决于您的工作),它将调试的这一部分留给用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.