截至ychart.com的收益日期

时间:2017-09-19 13:11:25

标签: python web-scraping

enter image description here

我需要历史收益日期,所以我试图从ychart.com中删除它们。 我尝试使用下面的脚本

废弃APPLE股票的收益日期(在上传的图片中显示在表格中)
Map<String, String> data = remoteMessage.getData();

我将'page_content'保存到文本文件中并搜索收入日期,但我找不到任何一个!

2 个答案:

答案 0 :(得分:1)

您对脚本所做的是从网页上获取HTML。 现在,您需要解析HTML以获取所需的数据。 您可以使用lxml库或beautifulsoup甚至scrapy进行网页抓取。

from lxml import html
import requests

url = 'https://ycharts.com/companies/AAPL/events/#/?eventTypes=earnings,&pageNum=1'

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

tree = html.fromstring(page_content)
my_xpath = '//th[@class="colDate ng-binding"]/text()'
dates = tree.xpath(my_xpath)

for date in dates:
    print("{}".format(date))

您最终应该在“日期”中找到日期列表。

编辑:你没有得到执行这个脚本的任何东西,因为request.get()在没有被Javascript修改的情况下检索HTML,该表由Javascript创建并填充。

我的答案不适用于此问题,它只是一个基本的网页抓取脚本。

答案 1 :(得分:0)

要从该页面获取数据,您需要将selenium与python结合使用,因为该页面中的数据是动态生成的。但是,要从该页面获取内容,您可以执行以下操作:

from selenium import webdriver
from bs4 import BeautifulSoup

driver=webdriver.Chrome()
driver.get("https://ycharts.com/companies/AAPL/events/#/?eventTypes=earnings,&pageNum=1")
soup = BeautifulSoup(driver.page_source,"lxml")
driver.quit()
for item in soup.find_all(class_="colDate"):
    print(item.text)

部分结果:

Time
08/01/2017 
05/02/2017 
01/31/2017