【发布时间】:2020-01-19 10:08:38
【问题描述】:
我想从两个网站上抓取一些数据点来获取一系列股票代码。例如:
对于数组:AAPL、FB、AMZN、...
1) 提取:来自https://ycharts.com/companies/AAPL/dividend_yield 的“股息收益率范围,过去 5 年 - 平均值”值(AAPL 是变量)
2) 提取:来自https://ycharts.com/companies/AAPL/pe_ratio 的“PE 比率范围,过去 5 年 - 平均值”值(AAPL 是变量)
3) 从https://www.finviz.com/quote.ashx?t=AAPL 中提取:'Book/sh' AND 'LT Debt/Eq' 值(AAPL 是变量)
以 CSV 格式输出:
Value1、Value2、Value3... 用于列标题
AAPL,T,MMM... 用于行标题
我已经从这个开始行动 1)
import urllib2
from bs4 import BeautifulSoup
import csv
from datetime import datetime
quote_page = ['https://ycharts.com/companies/AAPL/dividend_yield', 'https://ycharts.com/companies/T/dividend_yield', 'https://ycharts.com/companies/MMM/dividend_yield']
data = []
for pg in quote_page:
page = urllib2.urlopen(pg)
soup = BeautifulSoup(page, 'html.parser')
divyield_box = soup.find('td', attrs={'class': 'col2'})
divyield = divyield_box.text.strip()
data.append((divyield))
with open('index.csv', 'a') as csv_file:
writer = csv.writer(csv_file)
for divyield in data:
writer.writerow([divyield, datetime.now()])
它有效,但只提取数组的最后一项?
非常感谢
【问题讨论】:
-
您能否添加一些代码,以便我们知道您已经尝试过什么?
-
我已经添加了我仍然不完整的代码,感谢您的帮助
-
req = urllib2.Request(quote_page, headers=hdr) -- 当它需要一个字符串时,你给它一个列表。
-
和你的问题没有直接关系,但我很好奇:是什么让你选择了urllib2?
-
我缺乏经验和学习,所以我查找了示例脚本开始,有没有更好的方法?
标签: python web-scraping