**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
3天前关闭。
Improve this question
我刚开始用Python编程,我想获取一些财务数据并处理它。我在从这个页面获取数据时遇到了困难:text
我做错了什么,即使我不知道在哪里,因为,当我试图从html中提取特定部分时,终端不打印任何内容或显示错误消息
这是我尝试的一个例子
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.borsaitaliana.it/borsa/obbligazioni/mot/btp/lista.html?lang=it')
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
rows = table.find_all('tr')
for row in rows:
cells = row.find_all('td')
print([cell.text for cell in cells])
我不明白为什么我会收到错误消息:
rows = table.find_all('tr')
AttributeError: 'NoneType' object has no attribute 'find' "
1条答案
按热度按时间emeijp431#
问题是你第一次搜索
soup.find('table')
没有找到结果,因此返回None(find_all
为空列表)。没有找到结果的原因是因为网页是动态构建的(这里就是这种情况)或者html中有一个小错误。一个简单的解决方案可能是使用Selenium和一个webdriver,注意,这在计算方面相当繁重,可能被认为是矫枉过正。
这个解决方案将在Firefox中打开网页并从中检索html,这取决于您要查找的内容,可能并不理想。然而,BeautifulSoup和Selenium的组合可能正是您要查找的内容。