繁体   English   中英

AttributeError: 'NoneType' object 在抓取时没有属性 'text'

[英]AttributeError: 'NoneType' object has no attribute 'text' while scraping

from bs4 import BeautifulSoup
import requests
url='https://www.premierleague.com/stats/top/players/goals'
response=requests.get(url)
soup=BeautifulSoup(response.text,'lxml')
# getting the table rows
new_tests=soup.find_all('tr')
for new_test in new_tests:
    print(new_test.find('a', class_='playerName').text)

我在尝试获取文本格式时遇到上述命名错误。 虽然,它可以在没有 .text 格式的情况下工作。

在此处输入图像描述

Select 你的元素更具体,因为在<th>标签中没有这样的<a> - 使用css selectors

soup.select('tr:has(td)')

或者

soup.select('tr:has(a.playerName)')

或者根据您的示例,检查您的预期元素是否可用:

for new_test in new_tests:
    print(new_test.text if new_test.find('a', class_='playerName') else new_test)

例子

from bs4 import BeautifulSoup
import requests
url='https://www.premierleague.com/stats/top/players/goals'
response=requests.get(url)
soup=BeautifulSoup(response.text,'lxml')

for new_test in soup.select('tr:has(td)'):
    print(new_test.find('a', class_='playerName').text)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM