手把手教你使用 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