【发布时间】:2017-02-14 21:38:41
【问题描述】:
我希望使用 Python 脚本(以 https://finance.yahoo.com/quote/NOA?ltr=1 为例)解析特定的雅虎股票页面并将“推荐评级”打印到文件中。推荐的评分可以在页面右侧大约一半的位置找到。
这是我目前所拥有的
try:
import urllib.request as urllib2
except ImportError:
import urllib2
from bs4 import BeautifulSoup
quote_page = 'https://finance.yahoo.com/quote/NOA?ltr=1'
page = urllib2.urlopen(quote_page)
soup = BeautifulSoup(page, "html.parser")
name_box = soup.find(attrs={'div': 'rating-text Arrow South Fw(b) Bgc($strongBuy) Bdtc($strongBuy)'})
name = name_box.text.strip()
print(name)
棘手的部分是我认为推荐的评级仅在页面上列为 InnerHTML。我不确定我将如何检索这些数据,我们将不胜感激朝着正确的方向前进!
【问题讨论】:
-
你试过什么?你有没有特别尝试BeautifulSoup?
-
我用的是lxml,你会推荐BeautifulSoup吗?
-
雅虎没有 API 吗?使用 API 比抓取要可靠得多,因为 API 旨在供自动化系统使用,而网站通常不是。你可以构建一个很棒的爬虫,却发现自己被雅虎屏蔽了。
-
@t_wimms:真正的 HTML 是混乱的,BeautifulSoup 可以更好地处理这种混乱,而 lxml 需要格式良好的 XML。
-
@halfer 根据我刚刚阅读的内容,他们没有可用的金融 API。
标签: python html parsing web-scraping stocks