我正在尝试使用 Python 从中文网站上抓取动态股票信息:
http://vip.stock.finance.sina.com.cn/mkt/#cyb_root
但是,我是 Python 的新手。那么有人可以帮我解决这个问题吗?非常感谢。
我想做的就是从上面的网站上抓取 HTML 动态数据。
我正在尝试使用 Python 从中文网站上抓取动态股票信息:
http://vip.stock.finance.sina.com.cn/mkt/#cyb_root
但是,我是 Python 的新手。那么有人可以帮我解决这个问题吗?非常感谢。
我想做的就是从上面的网站上抓取 HTML 动态数据。
您可以使用http://docs.python-requests.org/en/latest/或http://doc.scrapy.org/en/0.16/。
如果您想关注大量链接,或者您需要抓取对象上的不同类型。我强烈推荐scrapy。如果您需要网站的示例,请告诉我,这两个库都非常易于使用。
我试过你的网站,在你的情况下,使用像 selenium 这样的浏览器自动化工具来做爬虫更简单,这里是 sina.com.cn 的工作示例:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://vip.stock.finance.sina.com.cn/mkt/#cyb_root")
rows = driver.find_elements_by_xpath("//div[@id='tbl_wrap']//tbody/tr")
for row in rows:
name = row.find_element_by_xpath("./th[@class='sort_down']/a").text
values = [v.text for v in row.find_elements_by_xpath("./td[@class='colorize']")]
print "%s : %s" % (name, values)
driver.close()
如果你运行这个脚本,你会得到:
$ python sina_com.py
sz300001 : [u'16.51', u'+0.64', u'+4.033%', u'16.51', u'16.52', u'15.87', u'15.86', u'16.58', u'15.80']
sz300002 : [u'--', u'0.00', u'0.000%', u'0.00', u'0.00', u'19.34', u'0.00', u'0.00', u'0.00']
sz300003 : [u'10.86', u'-0.05', u'-0.458%', u'10.85', u'10.86', u'10.91', u'10.98', u'10.98', u'10.59']
sz300004 : [u'22.86', u'+1.21', u'+5.589%', u'22.86', u'22.87', u'21.65', u'21.74', u'22.98', u'21.10']
sz300005 : [u'10.91', u'+0.35', u'+3.314%', u'10.91', u'10.94', u'10.56', u'10.51', u'10.99', u'10.51']
.....
:) 祝你好运