Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python find()不接受关键字参数-列表压缩_Python_Python 3.x - Fatal编程技术网

Python find()不接受关键字参数-列表压缩

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

我是python新手,正在尝试一个web抓取项目。然而,我完全被困在创建一个列表上,该列表可以删除文本周围所有多余的字符,而不会抛出错误。下面是代码以及我不断遇到的错误,我哪里出错了?任何帮助都将不胜感激

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)