【发布时间】:2020-07-30 08:14:26
【问题描述】:
我尝试从网站获取 URL 列表。我找到了正确的代码并将该变量命名为“表”。当我输入代码“for links in table.findall('tr', href=True)”时,它返回:
文件“”,第 1 行 对于 table.findall('tr', href=True) 中的链接 ^ SyntaxError: 无效语法
我尝试将 'tr' 替换为 'a',但这给了我相同的结果。就在这行代码之前,我给出了命令 print(table),它给了我正确的 html 代码,所以我认为声明 table 变量之前的一切都应该没问题。
为了清楚起见,这里是我的完整代码。再次,如果阅读困难或看起来草率,我很抱歉。提示和技巧总是受欢迎的。
代码:
from bs4 import BeautifulSoup
import requests
import urllib
import urllib.request
URL = 'https://www.transfermarkt.nl/eredivisie/kreuztabelle/wettbewerb/NL1/saison_id/2013'
Page = requests.get(URL, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 Edg/84.0.522.48'})
soup = BeautifulSoup(Page.text, "html.parser")
table = soup.find('div', {"class":"responsive-table"})
for links in table.findall('tr', href=True)
【问题讨论】:
-
您需要在for循环条件的末尾放置一个冒号(
:),即for links in table.findall('tr', href=True):;) -
这段代码应该做什么?
for不完整,它缺少冒号:和套件(正文)。请提供minimal reproducible example。 -
这部分html代码中有多个指向其他网站(href)的链接。我希望提取所有这些链接的列表。我添加了冒号并按照 SetMao 的建议添加了命令 print(links) 但现在我知道该对象不可调用
-
当我在 find 和 all 之间插入下划线
_时(所以:find_all),它可以工作,但它只给我一条记录。我期待更多。还有什么要解决的:-)?
标签: python-3.x for-loop