我想从http://www.dividend.com/dividend-stocks/上的第三个表中获取数据。 这是密码,我需要一些帮助。在
import requests
from bs4 import BeautifulSoup
url = "http://www.dividend.com/dividend-stocks/"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html5lib")
# Skip first two tables
tables = soup.find("table")
tables = tables.find_next("table")
tables = tables.find_next("table")
row = ''
for td in tables.find_all("td"):
if len(td.text.strip()) > 0:
row = row + td.text.strip().replace('\n', ' ') +','
# Handle last column in a row, remove extra comma and add new line
if td.get('data-th') == 'Pay Date':
row = row[:-1] + '\n'
print(row)
但代码输出如下:
^{pr2}$我做错什么了?谢谢你的帮助!在
尽管@Barmar的方法看起来更简洁,但这里有另一种选择,使用
soup.find_all
并保存到JSON(即使在描述中没有这样做)。在可以使用选择器查找特定表:
我不知道为什么你的结果和网页上显示的顺序不同。在
感谢@Barmar和@delicious莴苣发布了解决方案和代码。 关于输出的顺序,我意识到每次刷新数据时,我都会看到按输出顺序排列的数据。然后我看到排序后的数据。尝试了几种不同的方法,我能够使用Selenium webdriver来像web呈现的那样提取数据。谢谢大家。在
相关问题 更多 >
编程相关推荐