您好,登錄后才能下訂單哦!
個人博客:https://mypython.me
源碼地址:https://github.com/geeeeeeeek/scrapy_stock
抓取工具:scrapy
Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。其最初是為了?頁面抓取?(更確切來說,?網絡抓取?)所設計的, 也可以應用在獲取API所返回的數據(例如?Amazon Associates Web Services?) 或者通用的網絡爬蟲。
安裝scrapy
pip install Scrapy
選擇一個網站 --> 定義數據 --> 編寫spider
首先使用scrapy創建一個項目
scrapy startproject tutorial
這里我們選擇的是東方財富網的股票代碼頁面:http://quote.eastmoney.com/stocklist.html
我們需要抓取股票的代碼id,因此只需要定義stock_id
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來過濾自己需要的數據。
運行程序
scrapy crawl stock -o stock.csv
即可生成stock.csv文件
預覽如下:
stock_id
s_sh301000
s_sh301001
s_sh301002
s_sh301003
s_sh301004
s_sh301005
s_sh301008
s_sh301009
s_sh301010
s_sh302001
s_sh302003
s_sh302007
s_sh303007
s_sh303008
s_sh303009
…
如果要查詢單個股票的股票行情,可以使用新浪的股票接口:
http://hq.sinajs.cn
例如
http://hq.sinajs.cn/list=s_sh700756
即可得到浪潮軟件的股票行情
var hq_str_s_sh700756="浪潮軟件,19.790,1.140,6.11,365843,70869";
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。