文章来源:mypython.mecss
源码地址:github.com/geeeeeeeek/…html
抓取工具:scrapypython
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 能够应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了 页面抓取 (更确切来讲, 网络抓取 )所设计的, 也能够应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。git
安装scrapygithub
pip install Scrapy
复制代码
选择一个网站 --> 定义数据 --> 编写spiderbash
首先使用scrapy建立一个项目网络
scrapy startproject tutorial
复制代码
这里咱们选择的是东方财富网的股票代码页面:quote.eastmoney.com/stocklist.h…框架
咱们须要抓取股票的代码id,所以只须要定义stock_idscrapy
class StockItem(scrapy.Item):
stock_id = scrapy.Field()
复制代码
class StockSpider(scrapy.Spider):
name = 'stock'
def start_requests(self):
url = 'http://quote.eastmoney.com/stocklist.html'
yield Request(url)
def parse(self, response):
item = StockItem()
print "===============上海================"
stocks_sh = response.css('div#quotesearch ul li a[href*="http://quote.eastmoney.com/sh"]::text')
for stock in stocks_sh:
item['stock_id'] = 's_sh' + re.findall('\((.*?)\)', stock.extract())[0]
yield item
print "===============深圳================"
stocks_sz = response.css('div#quotesearch ul li a[href*="http://quote.eastmoney.com/sz"]::text')
for stock in stocks_sz:
item['stock_id'] = 's_sz' + re.findall('\((.*?)\)', stock.extract())[0]
yield item
复制代码
玄机尽在response.css('div#quotesearch ul li a[href*="http://quote.eastmoney.com/sh"]::text’)
,使用了css来过滤本身须要的数据。ide
运行程序
scrapy crawl stock -o stock.csv
复制代码
便可生成stock.csv文件
预览以下:
stock_id
s_sh201000
s_sh201001
s_sh201002
s_sh201003
s_sh201004
s_sh201005
s_sh201008
s_sh201009
s_sh201010
s_sh202001
s_sh202003
s_sh202007
s_sh203007
s_sh203008
s_sh203009
…
复制代码
若是要查询单个股票的股票行情,能够使用新浪的股票接口:
例如
便可获得浪潮软件的股票行情
var hq_str_s_sh600756="浪潮软件,19.790,1.140,6.11,365843,70869";
复制代码