如何用python抓取網頁特定內容?
用urllib2讀取通過httpsphp獲得網頁源代碼抓取網頁內容的幾種方法?
1.使用file_get_contents獲取網頁源代碼。這種方法是最常用的,只需要兩行代碼,非常簡單方便。
2.使用fopen獲取網頁源代碼。這個方法也有很多人用,但是代碼有點多。
3.使用curl獲取網頁源代碼。使用curl獲取網頁源代碼,經常被需要更高要求的人使用。比如需要抓取網頁內容時,需要獲取網頁的頭部信息,以及編碼和USERAGENT的使用。所謂web代碼是指一些特殊的
以python為例,簡要介紹如何通過python網絡爬蟲獲取網站數據,主要分為靜態網頁數據抓取和頁數據抓取。實驗環境為win10python3.6pycharm5.0,主要內容如下:
靜態網頁數據這里的數據是嵌入在網頁源代碼中的,所以它可以直接請求網頁源代碼進行解析。下面我簡單介紹一下。這里以爬取糗事百科上的數據為例:
1.首先,打開原始網頁,如下。假設這里要抓取的字段包括昵稱、內容、段子數和評論數:
然后看網頁的源代碼,如下,可以看到,所有的數據都嵌套在網頁中:
2.然后根據上面的網頁結構,我們可以直接編寫爬蟲代碼,解析網頁,提取我們需要的數據。測試代碼如下,非常簡單,主要使用了requestsBeautifulSoup的組合,其中requests用于獲取網頁的源代碼,BeautifulSoup用于解析從網頁中提取的數據:
點擊運行這個程序,效果如下,我們需要的數據已經爬取成功:
頁數據這里的數據都不在網頁的源代碼中(所以你可以不要通過直接請求頁面來獲取任何數據)。大多數情況下,它存儲在一個json文件中,只有當網頁更新時,數據才會被加載。我簡單介紹一下這個方法。這里以抓取人人貸上的數據為例:
1.首先,打開原始網頁,如下。假設這里要爬取的數據包括年利率、貸款標題、期限、金額、進度:
然后按F12調出開發者工具,點擊"網絡"-gt"XHR"接下來,F5刷新頁面,您可以找到并鍵入動態加載的jso。n文件,如下,也就是我們需要抓取的數據:
2.然后根據這個json文件寫相應的代碼來分析我們需要的字段信息。測試代碼如下,也很簡單,主要使用requestsjson的組合,其中requests用于請求json文件,json用于分析json文件提取數據:
點擊運行這個程序,效果如下,我們需要的數據已經爬取成功:
至此,我們已經完成了使用python網絡爬蟲獲取網站數據??偟膩碚f,整個過程很簡單。python內置了很多網絡爬蟲包和框架(scrapy等。),可以快速獲取網站數據。非常適合初學者學習掌握。只要你有一定的爬蟲基礎,熟悉以上流程和代碼,就能很快掌握。當然也可以用現成的爬蟲軟件,比如章魚、后羿,網上也有相關教程和資料。