Python find()不接受关键字参数-列表压缩
我是python新手,正在尝试一个web抓取项目。然而,我完全被困在创建一个列表上,该列表可以删除文本周围所有多余的字符,而不会抛出错误。下面是代码以及我不断遇到的错误,我哪里出错了?任何帮助都将不胜感激Python find()不接受关键字参数-列表压缩,python,python-3.x,Python,Python 3.x,我是python新手,正在尝试一个web抓取项目。然而,我完全被困在创建一个列表上,该列表可以删除文本周围所有多余的字符,而不会抛出错误。下面是代码以及我不断遇到的错误,我哪里出错了?任何帮助都将不胜感激 page = requests.get("https://www.ufc.com/rankings") soup = BeautifulSoup(page.content, "html.parser") rankings = soup.find(clas
page = requests.get("https://www.ufc.com/rankings")
soup = BeautifulSoup(page.content, "html.parser")
rankings = soup.find(class_ = "view-grouping-content")
ranking_names = [item.find(class_ = "views-row").get_text() for item in rankings]
错误:
Traceback (most recent call last):
File "/Users/liam/PycharmProjects/ufcrankingwebscraper/main.py", line 13, in <module>
ranking_names = [item.find(class_ = "views-row").get_text() for item in rankings]
File "/Users/liam/PycharmProjects/ufcrankingwebscraper/main.py", line 13, in <listcomp>
ranking_names = [item.find(class_ = "views-row").get_text() for item in rankings]
TypeError: find() takes no keyword arguments
回溯(最近一次呼叫最后一次):
文件“/Users/liam/PycharmProjects/ufcrankingwebscraper/main.py”,第13行,在
排名\u名称=[item.find(class=“views row”).get\u text()用于排名中的项目]
文件“/Users/liam/PycharmProjects/ufcrankingwebscraper/main.py”,第13行,在
排名\u名称=[item.find(class=“views row”).get\u text()用于排名中的项目]
TypeError:find()不接受关键字参数
运行以下代码:
print([type(item) for item in rankings])
生成以下输出:
[<class 'bs4.element.Tag'>, <class 'bs4.element.NavigableString'>]
我有一种感觉,不管怎样,你都想让所有的拳手都进入第一级。
您可以使用下面的代码块来实现这一点
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.ufc.com/rankings")
soup = BeautifulSoup(page.content, "html.parser")
rankings = soup.find(class_ = "view-grouping-content")
ranking_name_rows = rankings.find_all(class_ = "views-row")
ranking_names = [item.get_text().strip() for item in ranking_name_rows]
print(ranking_names)
“我哪里出错了?”好吧,错误是抱怨代码行
anking\u names=[item.find(class=“views row”).get\u text()用于排名中的项目]
,错误消息说find()不带关键字参数。行中涉及find
的部分是item.find(class=“views row”)
。错误消息表明,您不能将其与项
的查找
方法一起使用。所以您是否尝试检查项目的类型?(即,您是否尝试检查了排名
包含的内容?)您是否检查了BeautifulSoup文档?啊,我现在明白了,这是有道理的。非常感谢你的帮助,非常感谢!
import requests
from bs4 import BeautifulSoup
page = requests.get("https://www.ufc.com/rankings")
soup = BeautifulSoup(page.content, "html.parser")
rankings = soup.find(class_ = "view-grouping-content")
ranking_name_rows = rankings.find_all(class_ = "views-row")
ranking_names = [item.get_text().strip() for item in ranking_name_rows]
print(ranking_names)