首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python从dividend.com中提取红利

用python从dividend.com中提取红利
EN

Stack Overflow用户
提问于 2017-09-29 17:26:32
回答 1查看 2.7K关注 0票数 0

我试图从dividend.com中分红,下面是我的脚本:

代码语言:javascript
复制
import requests

url = 'http://www.dividend.com/ex-dividend-dates.php?from_filter=yes&ex_div_date_min=2018-01-11&ex_div_date_max=2018-01-11&common_shares=on&preferred_shares=on&adrs=on&etns=on&funds=on&notes=on&etfs=on&reits=on'

page = requests.get(url)
page_content = page.content

with open('page_content.txt', 'w') as f:
    f.write(str(page_content))
    f.close()

我将结果保存到文本文件中,我对上传的图片中的块感兴趣,

html块

在这个文件中,有很多块,我想把这些块保存到字典列表中,每个字典应该包含一个块的数据,如下所示,

{“股票符号”:“MFO”,“公司名称”:“MFA金融公司8%到期2042年的老债券”,“DARS™评级”:“,”Ex-Div Date“:”2018-01-11“,”支付日期“:”2018-01-16“,”Div Payout“:”0.50“,”合格股息?“:”No“,”股票价格“:”26.04美元“,”收益率“:”7.68%“,}

请帮忙,并提前感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 19:40:26

由于该表的数据是动态生成的,您必须使用selenium来获取所需的数据。下面是一个脚本,它是结合BeautifulSoup和selenium编写的,目的是:

代码语言:javascript
复制
from selenium import webdriver
from bs4 import BeautifulSoup

driver = webdriver.Chrome()
driver.get("http://www.dividend.com/ex-dividend-dates.php?from_filter=yes&ex_div_date_min=2018-01-11&ex_div_date_max=2018-01-11&common_shares=on&preferred_shares=on&adrs=on&etns=on&funds=on&notes=on&etfs=on&reits=on")
soup = BeautifulSoup(driver.page_source,"lxml")
driver.quit()
table = soup.select("table#ex-dividend-dates")[0]
list_row =[[tab_d.text.strip().replace("\n","") for tab_d in item.select('th,td')]
            for item in table.select('tr')]

for data in list_row[:2]:
    print(' '.join(data))

结果如下:

代码语言:javascript
复制
Stock Symbol Company Name DARS™ Rating Ex-Div Date Pay Date Div Payout Qualified Dividend? Stock Price Yield
MFO MFA Financial Inc. 8% Sr. Notes due 2042  2018-01-11 2018-01-16 0.50 No $26.04 7.68%
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46494044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档