手把手教你使用 Python 網絡爬蟲獲取基金信息

大家好,我是 Python 進階者。

一、前言

前幾天有個粉絲找我獲取基金信息,這裏拿出來分享一下,感興趣的小夥伴們,也可以積極嘗試。

二、數據獲取

這裏我們的目標網站是某基金官網,需要抓取的數據如下圖所示。

可以看到上圖中基金代碼那一列,有不同的數字,隨機點擊一個,可以進入到基金詳情頁,鏈接也非常有規律,以基金代碼作爲標誌的。

其實這個網站倒是不難,數據什麼的,都沒有加密,網頁上的信息,在源碼中都可以直接看到。

這樣就降低了抓取難度了。通過瀏覽器抓包的方法,可以看到具體的請求參數,而且可以看到請求參數中只有pi在變化,而這個值恰好對應的是頁面,直接構造請求參數就可以了。

代碼實現過程

找到數據源之後,接下來就是代碼實現了,一起來看看吧,這裏給出部分關鍵代碼。

獲取股票 id 數據

response = requests.get(url, headers=headers, params=params, verify=False)
    pattern = re.compile(r'.*?"(?P<items>.*?)".*?', re.S)
    result = re.finditer(pattern, response.text)
    ids = []
    for item in result:
        # print(item.group('items'))
        gp_id = item.group('items').split(',')[0]

結果如下圖所示:

之後構造詳情頁鏈接,獲取詳情頁的基金信息,關鍵代碼如下:

response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
selectors = etree.HTML(response.text)
danweijingzhi1 = selectors.xpath('//dl[@class="dataItem02"]/dd[1]/span[1]/text()')[0]
danweijingzhi2 = selectors.xpath('//dl[@class="dataItem02"]/dd[1]/span[2]/text()')[0]
leijijingzhi = selectors.xpath('//dl[@class="dataItem03"]/dd[1]/span/text()')[0]
lst = selectors.xpath('//div[@class="infoOfFund"]/table//text()')

結果如下圖所示:

將具體的信息做相應的字符串處理,然後保存到csv文件中,結果如下圖所示:

有了這個,你可以做進一步的統計和數據分析了。

三、總結

大家好,我是 Python 進階者。這篇文章主要分享了使用 Python 網絡爬蟲獲取基金數據信息,這個項目不算太難,裏邊稍微有點小坑,歡迎大家積極嘗試,如果有遇到問題,請添加我好友,我幫助解決。

這篇文章主要是以【股票型】的分類做了抓取,其他的類型,我就沒做了,歡迎大家嘗試,其實邏輯都是一樣的,改下參數就可以了。

最後需要本文代碼的小夥伴們,可以添加我 v 獲取!此外,方便大家學習 Python,我還建立了一個 Python 高質量學習交流羣,遇到 Python 問題都可以隨便問,需要進來的小夥伴們,加我 v,我拉你!

小夥伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何 Python 問題,歡迎加我好友,我拉你進 Python 學習交流羣共同探討學習。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/ANnNWj2W_w7afWOuyfWVYw