python - Webscraping AttributeError: 'NoneType' object has no attribute 'text'
问题描述
i'm webscraping a soccer schedule from this page.
This is my code:
import requests
my_url = requests.get('http://www.vivoelfutbol.com.mx/futbolmexicano.php')
from bs4 import BeautifulSoup as soup
page_soup = soup(my_url.text, "html.parser")
containers = page_soup.findAll("div", {"class":"det"})
for result in containers:
time = result.find('div', {'class':'hor'}).text
hometeam = result.find('a').text
score = result.find('a', {'title':'Analisis y Antecedentes'}).text
awayteam = result.find('div', {'class':'eqvc'}).text
print(time + " " + hometeam + " " + score + " " + awayteam)
But I'm getting this error:
19:30 UNAM 1-4 America
21:30 Tijuana 1-1 Monterrey
19:30 Tigres --- Santos
21:30 Morelia --- Toluca
19:00 America --- UNAM
21:00 Monterrey --- Tijuana
12:00 Toluca --- Morelia
18:00 Santos --- Tigres
Traceback (most recent call last):
File "test.py", line 10, in <module>
time = result.find('div', {'class':'hor'}).text
AttributeError: 'NoneType' object has no attribute 'text'
The thing is, the error line seems like it works because it is returning the time.
解决方案
如果您只想解析时间表,则不能使用该选择器,因为排行榜也具有名为 的类的元素det
。
您可以这样做:
import requests
my_url = requests.get('http://www.vivoelfutbol.com.mx/futbolmexicano.php')
from bs4 import BeautifulSoup as soup
page_soup = soup(my_url.text, "html.parser")
containers = page_soup.find_all("div", {"class":"bordermitad"})[0].find_all("div", {"class":"det"})
for result in containers:
time = result.find('div', {'class':'hor'}).text
hometeam = result.find('a').text
score = result.find('a', {'title':'Analisis y Antecedentes'}).text
awayteam = result.find('div', {'class':'eqvc'}).text
print(time + " " + hometeam + " " + score + " " + awayteam)
输出:
19:30 UNAM 1-4 America
21:30 Tijuana 1-1 Monterrey
19:30 Tigres --- Santos
21:30 Morelia --- Toluca
19:00 America --- UNAM
21:00 Monterrey --- Tijuana
12:00 Toluca --- Morelia
18:00 Santos --- Tigres
推荐阅读
- javascript - 使用 Javascript 检查是否发生 CORS 错误
- flutter - 根据 Flutter 中选定的类别为小部件元素分配不同的颜色
- python - 如何在Python中的函数调用中正确缩进多行参数列表
- arrays - char 数组是否比 C 中的 char 指针更有效?
- php - PHP Curl 忽略 META REFRESH 重定向上的 CURLOPT_COOKIEFILE
- android - 使用 PreferencesDataStore 将主题设置为活动
- macros - 为什么默认情况下不急切地扩展 lisp 宏?
- python - 如何在给它另一个任务的同时修复kivy没有响应
- c# - signInManager.IsSignedIn 返回 false 但调用了 SignInAsync
- xquery - 如何在marklogic中使用xquery返回除元素之外的现有文档