python數據爬取
⑴ python爬蟲是幹嘛的
爬蟲技術是一種自動化程序。
爬蟲就是一種可以從網頁上抓取數據信息並保存的自動化程序,它的原理就是模擬瀏覽器發送網路請求,接受請求響應,然後按照一定的規則自動抓取互聯網數據。
搜索引擎通過這些爬蟲從一個網站爬到另一個網站,跟蹤網頁中的鏈接,訪問更多的網頁,這個過程稱為爬行,這些新的網址會被存入資料庫等待搜索。簡而言之,爬蟲就是通過不間斷地訪問互聯網,然後從中獲取你指定的信息並返回給你。而我們的互聯網上,隨時都有無數的爬蟲在爬取數據,並返回給使用者。
爬蟲技術的功能
1、獲取網頁
獲取網頁可以簡單理解為向網頁的伺服器發送網路請求,然後伺服器返回給我們網頁的源代碼,其中通信的底層原理較為復雜,而Python給我們封裝好了urllib庫和requests庫等,這些庫可以讓我們非常簡單的發送各種形式的請求。
2、提取信息
獲取到的網頁源碼內包含了很多信息,想要進提取到我們需要的信息,則需要對源碼還要做進一步篩選。可以選用python中的re庫即通過正則匹配的形式去提取信息,也可以採用BeautifulSoup庫(bs4)等解析源代碼,除了有自動編碼的優勢之外,bs4庫還可以結構化輸出源代碼信息,更易於理解與使用。
3、保存數據
提取到我們需要的有用信息後,需要在Python中把它們保存下來。可以使用通過內置函數open保存為文本數據,也可以用第三方庫保存為其它形式的數據,例如可以通過pandas庫保存為常見的xlsx數據,如果有圖片等非結構化數據還可以通過pymongo庫保存至非結構化資料庫中。
⑵ 濡備綍鐢╬ython鐖鍙栫綉絝欐暟鎹
鐢╬ython鐖鍙栫綉絝欐暟鎹鏂規硶姝ラゅ備笅錛
1.棣栧厛瑕佹槑紜鎯寵佺埇鍙栫殑鐩鏍囥傚逛簬緗戦〉婧愪俊鎮鐨勭埇鍙栭栧厛瑕佽幏鍙杣rl,鐒跺悗瀹氫綅鐨勭洰鏍囧唴瀹廣
2.鍏堜嬌鐢ㄥ熀紜for寰鐜鐢熸垚鐨剈rl淇℃伅銆
3.鐒跺悗闇瑕佹ā鎷熸祻瑙堝櫒鐨勮鋒眰(浣跨敤request.get(url)),鑾峰彇鐩鏍囩綉欏電殑婧愪唬鐮佷俊鎮(req.text)銆
4.鐩鏍囦俊鎮灝卞湪婧愪唬鐮佷腑,涓轟簡綆鍗曠殑鑾峰彇鐩鏍囦俊鎮闇瑕佺敤Beautifulsoup搴撳規簮浠g爜榪涜岃В鏋愶紝鍥犱負鏄痟tml淇℃伅錛岄噰鐢╤tml.parser鐨勬柟寮忚繘琛岃В鏋愩
5.闅忓悗瑕佸湪婧愮綉欏典腑榪涗竴姝ュ畾浣嶇洰鏍囦俊鎮鍦ㄧ綉欏墊簮浠g爜涓鐨勪綅緗錛氬湪緗戦〉涓璅12閿錛屾煡鐪嬪厓緔犱俊鎮錛屼嬌鐢ㄥ乏涓婅掔殑鎸夐挳榪涗竴姝ユ煡鐪嬬洰鏍囦俊鎮浣嶇疆銆
6.浣跨敤beautifululsoup榪涗竴姝ュ畾浣嶆簮浠g爜淇℃伅銆
7.鏈鍚庝嬌鐢ㄥ驚鐜鍙栧嚭鍗曚釜鍏冪礌淇℃伅銆傞栧厛鍒嗘瀽鍗曚釜淇℃伅鐨勪綅緗錛氬畠鍦╱l鍒楄〃涓嬶紝浣跨敤寰鐜鍙栧嚭鐒跺悗瀹氫綅鍗曚釜鍏冪礌涓淇℃伅鐨勪綅緗錛屽苟鍙栧嚭淇℃伅銆
8.鏈緇堝氨寰楀埌鐩鏍囦俊鎮鍒楄〃浜嗐
⑶ 如何通過網路爬蟲獲取網站數據
這里以python為例,簡單介紹一下如何通過python網路爬蟲獲取網站數據,主要分為靜態網頁數據的爬埋山差取和動態網頁數據的爬取,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
靜態網頁數據
這里的數據都嵌套在網頁源碼中,所以直接requests網頁源碼進行解析就行,下面我簡單介紹一下,這里以爬取糗事網路上的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的欄位包括昵稱、內容、好笑數和評論數:
接著查看網頁源碼,如下,可以看的出來,所有的數據都嵌套在網頁中:
2.然後針對以上網頁結構,我們就可以直接編寫爬蟲代碼,解析網頁並提取出我們需要的數據了,測試代碼如下,非常簡單,主要用到requests+BeautifulSoup組合,其中requests用於獲取網頁源碼,BeautifulSoup用於解析網頁提取數據:
點擊運行這個程序,效果如下,已經成功爬取了到我們需要的數據:
動態網頁數據
這里的數據都沒有在網頁源碼中(所以直接請求頁面是獲取不到任何數據的),大部分情況下都是存儲在一唯唯個json文件中,只有在網頁更新的時候,才會載入數據,下面我簡單介紹一下這種方式,這里以爬取人人貸上面的數據為例:
1.首先,打開原網頁,如下,這里假設要爬取的數據包括年利率,借款標題,期限,金額和進度:
接著按F12調出開發者工具,依次點擊「Network」->「XHR」,F5刷新頁面,就可以找打動態載入的json文件,如下,也就是我們需要爬彎皮取的數據:
2.然後就是根據這個json文件編寫對應代碼解析出我們需要的欄位信息,測試代碼如下,也非常簡單,主要用到requests+json組合,其中requests用於請求json文件,json用於解析json文件提取數據:
點擊運行這個程序,效果如下,已經成功爬取到我們需要的數據:
至此,我們就完成了利用python網路爬蟲來獲取網站數據。總的來說,整個過程非常簡單,python內置了許多網路爬蟲包和框架(scrapy等),可以快速獲取網站數據,非常適合初學者學習和掌握,只要你有一定的爬蟲基礎,熟悉一下上面的流程和代碼,很快就能掌握的,當然,你也可以使用現成的爬蟲軟體,像八爪魚、後羿等也都可以,網上也有相關教程和資料,非常豐富,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。