0

我正在尝试使用 Python 从中文网站上抓取动态股票信息:

http://vip.stock.finance.sina.com.cn/mkt/#cyb_root

但是,我是 Python 的新手。那么有人可以帮我解决这个问题吗?非常感谢。

我想做的就是从上面的网站上抓取 HTML 动态数据。

4

2 回答 2

1

您可以使用http://docs.python-requests.org/en/latest/http://doc.scrapy.org/en/0.16/

如果您想关注大量链接,或者您需要抓取对象上的不同类型。我强烈推荐scrapy。如果您需要网站的示例,请告诉我,这两个库都非常易于使用。

于 2013-07-16T17:59:52.200 回答
1

我试过你的网站,在你的情况下,使用像 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']
.....

:) 祝你好运

于 2013-07-16T23:54:02.180 回答