日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自动炒股软件下载_python自动股票交易软件

發布時間:2024/1/23 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动炒股软件下载_python自动股票交易软件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

獲取數據是數據分析中必不可少的一部分,而網絡爬蟲是是獲取數據的一個重要渠道之一。鑒于此,我拾起了Python這把利器,開啟了網絡爬蟲之路。

本篇使用的版本為python3.5,意在抓取證券之星上當天所有A股數據。程序主要分為三個部分:網頁源碼的獲取、所需內容的提取、所得結果的整理。

一、網頁源碼的獲取

很多人喜歡用python爬蟲的原因之一就是它容易上手。只需以下幾行代碼既可抓取大部分網頁的源碼。

import urllib.request

url='ar.com/stock/ranklist_a_3_1_1.html' ?#目標網址headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64)"} ?#偽裝瀏覽器請求報頭request=urllib.request.Request(url=url,headers=headers) ?#請求服務器response=urllib.request.urlopen(request) ?#服務器應答content=response.read().decode('gbk') ? #以一定的編碼方式查看源碼print(content) ?#打印頁面源碼

雖說抓一頁的源碼容易,不過在一個網站內大量抓取網頁源碼卻經常遭到服務器攔截,頓時感覺世界充滿了惡意。于是我開始研習突破反爬蟲限制的功法。

1.偽裝流浪器報頭

很多服務器通過瀏覽器發給它的報頭來確認是否是人類用戶,所以我們可以通過模仿瀏覽器的行為構造請求報頭給服務器發送請求。服務器會識別其中的一些參數來識別你是否是人類用戶,很多網站都會識別User-Agent這個參數,所以請求頭最好帶上。有一些警覺性比較高的網站可能還會通過其他參數識別,比如通過Accept-Language來辨別你是否是人類用戶,一些有防盜鏈功能的網站還得帶上referer這個參數等等。

2.隨機生成UA

證券之星只需帶User-Agent這個參數就可以抓取頁面信息了,不過連續抓取幾頁就被服務器阻止了。于是我決定每次抓取數據時模擬不同的瀏覽器發送請求,而服務器通過User-Agent來識別不同瀏覽器,所以每次爬取頁面可以通過隨機生成不同的UA構造報頭去請求服務器,

3.減慢爬取速度

雖然模擬了不同瀏覽器爬取數據,但發現有的時間段可以爬取上百頁的數據,有時候卻只能爬取十來頁,看來服務器還會根據你的訪問的頻率來識別你是人類用戶還是網絡爬蟲。所以我每抓取一頁都讓它隨機休息幾秒,加入此句代碼后,每個時間段都能爬取大量股票數據了。

4.使用代理IP

天有不測風云,程序在公司時順利測試成功,回寢室后發現又只能抓取幾頁就被服務器阻止了。驚慌失措的我趕緊詢問度娘,獲知服務器可以識別你的IP,并記錄此IP訪問的次數,可以使用高匿的代理IP,并在抓取的過程中不斷的更換,讓服務器無法找出誰是真兇。此功還未修成,欲知后事如何,請聽下回分解。

5.其他突破反爬蟲限制的方法

很多服務器在接受瀏覽器請求時會發送一個cookie文件給瀏覽器,然后通過cookie來跟蹤你的訪問過程,為了不讓服務器識別出你是爬蟲,建議最好帶上cookie一起去爬取數據;如果遇上要模擬登陸的網站,為了不讓自己的賬號被拉黑,可以申請大量的賬號,然后再爬入,此處涉及模擬登陸、驗證碼識別等知識,暫時不再深究...總之,對于網站主人來說,有些爬蟲確實是令人討厭的,所以會想出很多方法限制爬蟲的進入,所以我們在強行進入之后也得注意些禮儀,別把人家的網站給拖垮了。

二、所需內容的提取

獲取網頁源碼后,我們就可以從中提取我們所需要的數據了。從源碼中獲取所需信息的方法有很多,使用正則表達式就是比較經典的方法之一。我們先來看所采集網頁源碼的部分內容。

為了減少干擾,我先用正則表達式從整個頁面源碼中匹配出以上的主體部分,然后從主體部分中匹配出每只股票的信息。代碼如下。

pattern=re.compile('

')

body=re.findall(pattern,str(content)) ?#匹配

之間的所有代碼pattern=re.compile('>(.*?)

stock_page=re.findall(pattern,body[0]) ?#匹配>和

其中compile方法為編譯匹配模式,findall方法用此匹配模式去匹配出所需信息,并以列表的方式返回。正則表達式的語法還挺多的,下面我只羅列所用到符號的含義。

語法 ? ?說明

. ? ?匹配任意除換行符“\n”外的字符

* ? ?匹配前一個字符0次或無限次

? ? ?匹配前一個字符0次或一次

\s ? ?空白字符:[\t\r\n\f\v]

\S ? ?非空白字符:[^\s]

[...] ? ?字符集,對應的位置可以是字符集中任意字符

(...) ? ?被括起來的表達式將作為分組,里面一般為我們所需提取的內容

正則表達式的語法挺多的,也許有大牛只要一句正則表達式就可提取我想提取的內容。在提取股票主體部分代碼時發現有人用xpath表達式提取顯得更簡潔一些,看來頁面解析也有很長的一段路要走。

三、所得結果的整理

通過非貪婪模式(.*?)匹配>和

stock_last=stock_total[:] #stock_total:匹配出的股票數據for data in stock_total: ?#stock_last:整理后的股票數據

if data=='':

stock_last.remove('')

最后,我們可以打印幾列數據看下效果,代碼如下

print('代碼','\t','簡稱',' ? ','\t','最新價','\t','漲跌幅','\t','漲跌額','\t','5分鐘漲幅')for i in range(0,len(stock_last),13): ? ? ? ?#網頁總共有13列數據

print(stock_last[i],'\t',stock_last[i+1],' ','\t',stock_last[i+2],' ?','\t',stock_last[i+3],' ?','\t',stock_last[i+4],' ?','\t',stock_last[i+5])

總結

以上是生活随笔為你收集整理的python自动炒股软件下载_python自动股票交易软件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。