![](/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.