python3 爬虫抓取股市数据
生活随笔
收集整理的這篇文章主要介紹了
python3 爬虫抓取股市数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python3 爬蟲抓取股市數據
- 爬蟲抓取數據的一般步驟
- 代碼
- 運行結果
- 小結
- 注意事項
爬蟲抓取數據的一般步驟
1、確定需要抓取的網站2、分析url,找到url的的變化規律3、分析頁面的數據4、獲取頁面數據5、提取需要爬取的數據6、寫入數據庫或寫入文件代碼
import requests import random import re# 創建 User-Agent 池 UA_list = [{"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"},{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0"},{"User-Agent":"Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50"}]def get_url():'''拼接url'''try:shares_id = input("請輸入股票代碼:")year = input("請輸入年份:")season = input("請輸入季度:")url = "http://**********/trade/lsjysj_%s.html?year=%s&season=%s" % (shares_id, year, season)except:passreturn urldef get_page(url):'''獲取網頁數據'''ua = random.choice(UA_list) # 隨機獲取User-Agent,防止對方反爬response = requests.get(url, ua)if response.status_code == 200:return response.textreturn 0def parse_page(html):'''分析網頁數據'''regular = re.compile(r"<tr [\s\S]*?><td>([\s\S]*?)</td><td [\s\S]*?>([\s\S]*?)</td><td [\s\S]*?>([\s\S]*?)</td><td [\s\S]*?>([\s\S]*?)</td><td [\s\S]*?>([\s\S]*?)</td>")price_list = re.findall(regular, html)# 正則表達式獲取需要的股票價格,包含當天開盤價,收盤價,最高價和最低價for price in price_list:print(price)while True:url = get_url()page = get_page(url)if page:parse_page(page)breakelse:print("未找到相應股票,請重新輸入")運行結果
小結
此爬蟲較為簡單
1、不需要考慮登錄的cookie的問題
2、沒有ajax頁面數據動態加載問題
3、未寫入數據庫或文件當中,通過終端打印的防止,直接展示出爬取的數據
4、一次只能爬取一只股票的其中一個季度的數據
注意事項
1、如果一次性爬取多條股票的價格,要注意反反爬策略,例如通過代理服務池或者連續爬取時增加程序的休眠時間
2、大量爬取數據時,可利用創建多進程的方式提高爬取效率
總結
以上是生活随笔為你收集整理的python3 爬虫抓取股市数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Office for Mac】PPT导
- 下一篇: python爬虫实时更新数据_爬虫的增量