最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python爬取搜狐證券股票過程解析

 更新時間:2020年11月18日 09:48:28   作者:松鼠愛吃餅干  
這篇文章主要介紹了基于Python爬取搜狐證券股票過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

數(shù)據(jù)的爬取

我們以上證50的股票為例,首先需要找到一個網(wǎng)站包含這五十只股票的股票代碼,例如這里我們使用搜狐證券提供的列表。

https://q.stock.sohu.com/cn/bk_4272.shtml

可以看到,在這個網(wǎng)站中有上證50的所有股票代碼,我們希望爬取的就是這個包含股票代碼的表,并獲取這個表的第一列。

爬取網(wǎng)站的數(shù)據(jù)我們使用Beautiful Soup這個工具包,需要注意的是,一般只能爬取到靜態(tài)網(wǎng)頁中的信息。

簡單來說,Beautiful Soup是Python的一個庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù)。

像往常一樣,使用這個庫之前,我們需要先導(dǎo)入該庫bs4。除此之外,我們還需要使用requests這個工具獲取網(wǎng)站信息,因此導(dǎo)入這兩個庫:

import bs4 as bs

import requests

我們定義一個函數(shù)saveSS50Tickers() 來實現(xiàn)上證50股票代碼的獲取,獲取的數(shù)據(jù)來自于搜狐證券的網(wǎng)頁,使用 get() 方法獲取給定靜態(tài)網(wǎng)頁的數(shù)據(jù)。

def saveSS50Tickers():
resp = requests.get('https://q.stock.sohu.com/cn/bk_4272.shtml')

接下來我們打開搜狐證券的這個網(wǎng)址,在頁面任意位置右鍵選擇查看元素,或者Inspect Element,或者類似的選項來查看當前網(wǎng)站的源代碼信息。

我們需要先在這里找出網(wǎng)頁的一些基本信息和我們需要爬取的數(shù)據(jù)的特征。

首先,找到Element,在下面的內(nèi)容中找到網(wǎng)頁的頭文件 (head)。然后找到網(wǎng)頁的文字的編碼方式。這里這個網(wǎng)頁文字的編碼方式是gb2312。

如果我們想爬取并正確顯示這個網(wǎng)頁上,就需要先對獲取到的網(wǎng)頁內(nèi)容解碼。

解碼可以使用 encoding 這個方法:

resp.encoding = 'gb2312'

接下來使用 BeautifulSoup 和lxml解析網(wǎng)頁信息:

soup = bs.BeautifulSoup(resp.text, 'lxml')

這里為了方便后期的處理,首先使用 resp.text 將網(wǎng)頁信息轉(zhuǎn)成了文本格式,然后再解析網(wǎng)頁的數(shù)據(jù)。

接下來我們需要在網(wǎng)頁的源碼中找到需要爬取信息的標簽,這里我們需要爬取這個表格中的信息,首先,可以通過網(wǎng)站源碼的搜索功能搜索表格里的相關(guān)數(shù)據(jù)定位到表格的源碼。

同樣以這個頁面為例,一般網(wǎng)頁使用HTML語言編譯的,因為要準確定位,我們需要了解一些 HTML 語言的基礎(chǔ)內(nèi)容。在這個頁面的源碼中,

<table表示表格開始,后面是這個表格的一些屬性。</table>表示表格結(jié)束。

首先,我們使用 soup.find 在網(wǎng)頁信息中找到這個表格標簽的入口:

table = soup.find('table', {'id': 'BIZ_MS_plstock'})

其中'table'表示這里需要找到一個表格,{'id':'BIZ_MS_plstock'} 則是通過內(nèi)容或者屬性實現(xiàn)表格的進一步定位。

找到表格的位置之后,我們需要繼續(xù)查找需要的數(shù)據(jù),同樣以這個頁面為例:

在網(wǎng)頁開發(fā)語言中,

<tr表示表格中開始新的一行,<td表示在這一行中又新建了一列,而</td>則表示這一列結(jié)束了,對應(yīng)的</tr>則表示這一行結(jié)束了。

通過該網(wǎng)頁的源碼,我們可以發(fā)現(xiàn),

表格的第一行和第二行都是表頭的信息,第三行開始是五十家公司的股票信息。另外每家公司的股票代碼在表格的第一列位置。

因為,在Python中,我們需要從表格的第三行開始抓取,每行抓取表格的第一列的數(shù)據(jù),將抓取到的數(shù)據(jù)轉(zhuǎn)換成文本格式,我們用一個列表 tickers 來存儲抓取到的數(shù)據(jù):

tickers = []
for row in table.findAll('tr')[2:]:
ticker = row.findAll('td')[0].text
tickers.append(ticker + '.SS')

因此為了方便后續(xù)進行數(shù)據(jù)處理,這里我們存儲上證50的每家公司的股票代碼時,都在代碼后面再添加'.SS'的字符。這時我們運行目前的代碼,并將列表tickers輸出:

# 導(dǎo)入 beautiful soup4 包,用于抓取網(wǎng)頁信息
import bs4 as bs
# 導(dǎo)入 pickle 用于序列化對象
import pickle
# 導(dǎo)入 request 用于獲取網(wǎng)站上的源碼
import requests

def saveSS50Tickers():
  resp = requests.get('https://q.stock.sohu.com/cn/bk_4272.shtml')
  resp.encoding = 'gb2312'
  soup = bs.BeautifulSoup(resp.text, 'lxml')
  # print(soup)
  
  table = soup.find('table', {'id': 'BIZ_MS_plstock'})
  # print(table)
  tickers = []
  # print(table.find_all('tr'))
  for row in table.findAll('tr')[2:]:
    # print(row)
    ticker = row.findAll('td')[0].text
    tickers.append(ticker + '.SS') 
  return tickers

tickers = saveSS50Tickers()
print(tickers)

觀察到輸出信息如下:

['600036.SS', '601229.SS', '600031.SS', '601166.SS', '600104.SS', '600030.SS', '603259.SS', '601668.SS', '601628.SS', '601766.SS', '601857.SS', '601398.SS', '601390.SS', '600029.SS', '600028.SS', '601818.SS', '601211.SS', '601066.SS', '601111.SS', '600837.SS', '600887.SS', '601888.SS', '600690.SS', '600519.SS', '600016.SS', '601989.SS', '601988.SS', '601601.SS', '600019.SS', '601186.SS', '600703.SS', '600196.SS', '601318.SS', '601800.SS', '600050.SS', '601319.SS', '601288.SS', '601688.SS', '603993.SS', '600309.SS', '600048.SS', '600276.SS', '601138.SS', '601336.SS', '601088.SS', '600585.SS', '600000.SS', '601328.SS', '601939.SS', '600340.SS']

這樣我們就從搜狐證券這個網(wǎng)站上爬取到了上證50的公司股票代碼,并將其以字符串的格式存放在了一個列表變量中。

將股票代碼保存到本地

一般像股票代碼這種內(nèi)容,短時間內(nèi)不會有很大的變動,所以我們也不需要每次使用時重新爬取,一種方便的做法是可以將股票代碼信息以文件的格式保存到本地,需要使用時直接從本地讀取就可以了。

這里我們將股票代碼數(shù)據(jù)保存為pickle格式。pickle 格式的數(shù)據(jù)可以在 Python 中高效的存取,當然,將文件導(dǎo)出成該格式前需要先導(dǎo)入相應(yīng)的pickle 庫:

import pickle

pickle可以保存任何數(shù)據(jù)格式的數(shù)據(jù),在經(jīng)常存取的場景(保存和恢復(fù)狀態(tài))下讀取更加高效。

把文件導(dǎo)出成pickle格式的方法是 pickle.dump,同時需要結(jié)合文件讀寫操作:

with open('SS50tickers.pickle', 'wb') as f: pickle.dump(tickers, f)

這里的'SS50tickers.pickle'就是保存的文件的名稱,'wb'則表示向文件中寫入數(shù)據(jù)。pickle.dump(tickers, f) 表示將列表tickers寫入到文件中。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python寫捕魚達人的游戲?qū)崿F(xiàn)

    Python寫捕魚達人的游戲?qū)崿F(xiàn)

    這篇文章主要介紹了Python寫捕魚達人的游戲?qū)崿F(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • python-3.5.3安裝及一些庫安裝教程詳解

    python-3.5.3安裝及一些庫安裝教程詳解

    這篇文章主要介紹了python-3.5.3安裝及一些庫安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 使用Pytorch+PyG實現(xiàn)MLP的詳細過程

    使用Pytorch+PyG實現(xiàn)MLP的詳細過程

    圖神經(jīng)網(wǎng)絡(luò)是最近 AI 領(lǐng)域最熱門的方向之一,下面這篇文章主要給大家介紹了關(guān)于使用Pytorch+PyG實現(xiàn)MLP的詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • Jupyter Notebook如何導(dǎo)入python文件時的問題

    Jupyter Notebook如何導(dǎo)入python文件時的問題

    這篇文章主要介紹了Jupyter Notebook如何導(dǎo)入python文件時的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Python3操作Excel文件(讀寫)的簡單實例

    Python3操作Excel文件(讀寫)的簡單實例

    這篇文章主要給大家介紹了關(guān)于Python3操作Excel文件(讀寫)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • python3 實現(xiàn)口罩抽簽的功能

    python3 實現(xiàn)口罩抽簽的功能

    這篇文章主要介紹了python3 實現(xiàn) 口罩抽簽的功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • PyTorch中的padding(邊緣填充)操作方式

    PyTorch中的padding(邊緣填充)操作方式

    今天小編就為大家分享一篇PyTorch中的padding(邊緣填充)操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 利用python批量給云主機配置安全組的方法教程

    利用python批量給云主機配置安全組的方法教程

    這篇文章主要給大家介紹了利用python批量給云主機配置安全組的方法教程,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • Zookeeper接口kazoo實例解析

    Zookeeper接口kazoo實例解析

    這篇文章主要介紹了Zookeeper接口kazoo實例解析,簡單介紹了Zookeeper接口接口的開發(fā),然后分享了相關(guān)實例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 使用Python下載Bing圖片(代碼)

    使用Python下載Bing圖片(代碼)

    代碼另存為py文件,運行圖片將自動下載到py文件相同目錄,如果覺得每次運行找文件麻煩,可以新建py文件的快捷方式,程序還會自動給下載的圖片命名
    2013-11-11

最新評論

连山| 田林县| 科技| 江城| 沽源县| 怀远县| 都江堰市| 朝阳市| 蓬莱市| 宜昌市| 广元市| 那曲县| 喜德县| 江油市| 凤山县| 广宁县| 亚东县| 棋牌| 沁水县| 平乡县| 龙州县| 铜鼓县| 涟水县| 平谷区| 新津县| 合山市| 彭泽县| 北安市| 永济市| 平安县| 凌云县| 怀远县| 达拉特旗| 唐山市| 元阳县| 十堰市| 东辽县| 西乌珠穆沁旗| 三亚市| 文安县| 九龙城区|