Python的爬蟲庫其實很多,像常見的urllib,requests,bs4,lxml等,初始入門爬蟲的話,可以學習壹下requests和bs4(BeautifulSoup)這2個庫,比較簡單,也易學習,requests用於請求頁面,BeautifulSoup用於解析頁面,下面我以這2個庫為基礎,簡單介紹壹下Python如何爬取網頁靜態數據和網頁動態數據,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
Python爬取網頁靜態數據
這個就很簡單,直接根據網址請求頁面就行,這裏以爬取糗事百科上的內容為例:
1.這裏假設我們要爬取的文本內容如下,主要包括昵稱、內容、好笑數和評論數這4個字段:
打開網頁源碼,對應網頁結構如下,很簡單,所有字段內容都可以直接找到:
2.針對以上網頁結構,我們就可以編寫相關代碼來爬取網頁數據了,很簡單,先根據url地址,利用requests請求頁面,然後再利用BeautifulSoup解析數據(根據標簽和屬性定位)就行,如下:
程序運行截圖如下,已經成功爬取到數據:
Python爬取網頁動態數據
很多種情況下,網頁數據都是動態加載的,直接爬取網頁是提取不到任何數據的,這時就需要抓包分析,找到動態加載的數據,壹般情況下就是壹個json文件(當然,也可能是其他類型的文件,像xml等),然後請求解析這個json文件,就能獲取到我們需要的數據,這裏以爬取人人貸上面的散標數據為例:
1.這裏假設我們爬取的數據如下,主要包括年利率,借款標題,期限,金額,進度這5個字段:
2.按F12調出開發者工具,依次點擊“Network”->“XHR”,F5刷新頁面,就可以找到動態加載的json文件,具體信息如下:
3.接著,針對以上抓包分析,我們就可以編寫相關代碼來爬取數據了,基本思路和上面的靜態網頁差不多,先利用requests請求json,然後再利用python自帶的json包解析數據就行,如下:
程序運行截圖如下,已經成功獲取到數據:
至此,我們就完成了利用python來爬取網頁數據。總的來說,整個過程很簡單,requests和BeautifulSoup對於初學者來說,非常容易學習,也易掌握,可以學習使用壹下,後期熟悉後,可以學習壹下scrapy爬蟲框架,可以明顯提高開發效率,非常不錯,當然,網頁中要是有加密、驗證碼等,這個就需要自己好好琢磨,研究對策了,網上也有相關教程和資料,感興趣的話,可以搜壹下,希望以上分享的內容能對妳上有所幫助吧,也歡迎大家評論、留言。