當然可以,作為一門簡單易學的編程語言,Python針對爬蟲提供了非常豐富的模塊和第三方庫,可以輕松爬取互聯網大部分網站,下面我簡單介紹一下Python爬蟲的學習過程,感興趣的朋友可以嘗試一下:
01Python基礎入門這部分主要針對沒有任何Python基礎的朋友,學習Python爬蟲,首先最基礎的就是要掌握Python常用的語法及結構,包括列表、字典、元組、函數、類、文件操作、正則表達式等,至于教程的話,網上資料非常多,廖雪峰、慕課網、菜鳥教程等都非常不錯,當然,你也可以找一本專業書籍,一邊學習一邊練習,以掌握基礎為準:
02Python爬蟲入門基礎熟悉差不多后,就是Python爬蟲入門,這里可以從最基本、簡單易學的爬蟲庫開始,包括bs4,requests,urllib,lxml等,官方自帶有非常詳細的使用文檔和入門教程,非常適合初學者,對大部分網站來說,都可以輕松爬取,基本思想先獲取網頁數據,然后再解析提取就行:
03Python爬蟲框架這里就屬于提升階段了,Python爬蟲入門后,為了提高開發效率,避免反復造輪子,可以學習一下爬蟲框架,以Python為例,比較著名的就是scrapy,一個免費、開源、跨平臺的Python爬蟲庫,可定制化程度非常高,相比較bs4,requests等基礎庫來說,只需添加少量代碼就可快速開啟一個爬蟲程序,對于學習使用來說,非常不錯,推薦一用:
目前,就分享這3個方面吧,自學Python爬蟲,最主要的就是多看多練習,以積累實際經驗為準,后期熟悉后,可以結合numpy,pandas對數據進行簡單處理,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
一般情況下網頁中不會包含有小區經緯度信息,直接利用Python爬蟲是獲取不到的,可以先獲取小區名稱,然后借助于某度地圖API間接獲取到經緯度信息,下面我簡單介紹一下實現過程,感興趣的朋友可以嘗試一下:
1.首先,注冊某度地圖開發者,這個直接使用自己的某度賬號登錄就行,點擊“控制臺”,切換到管理頁面如下:
2.接著創建應用,這里我們是根據小區名稱獲取到經緯度信息,是正地理編碼的過程,所以需要選擇應用類型為服務端,如下,應用名稱自行設置就行:
3.創建完成后,會自動跳轉到應用管理頁面,如下,這里我們需要記住這個AK值,后面的Python程序就是借助這個AK值接入API接口:
4.至于使用的話,這里官方文檔給出了詳細的說明,包括請求參數、返回結果等,如下,都有具體解釋和舉例,如果你有一定的編程基礎,熟悉文檔后,應該成竹在胸,直接可以編寫代碼:
5.測試代碼如下,非常簡單,主要是構造輸入參數,包括address,ak和output,輸出結果是一個json對象,直接解析就可以獲取到經緯度信息,如下,更多參數說明可以參考官方文檔,介紹的非常清楚:
程序運行截圖如下,已經成功獲取到小區(街道)的經緯度信息,這里為了更精確的定位,建議輸入的地址信息詳細一些:
至此,我們就完成了利用Python來獲取小區經緯度信息。總的來說,整個過程非常簡單,只要你熟悉一下上面的過程,很快就能掌握的,建議認真閱讀一下官方文檔,可以獲取到更多有用信息,當然,你也可以逆地理編碼,就是根據經緯度獲取到小區(街道信息)信息,網上也有相關教程,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
返回的代碼放出來看看?
1.這種問題如果代碼沒寫錯的話,估計是網站做了反爬處理,如果說是反爬的話你可以用python 里面的urllib2 模塊試試看,這是一個進階爬蟲模塊。
呃。。題主這個問題是如何分析并選擇什么樣的方式進行爬取。我也是新入門,簡單說下我的經驗吧,當然只針對簡單的小爬蟲,大型爬蟲先不說了(我也不怎么會。。)!
首先,我會去看看我想要的內容在哪個頁面,查看頁面結構,考慮怎么寫循環獲取所有的數據(如果只是單頁面抓取數據,直接右鍵就可以不需要寫爬蟲了),這樣我腦海里就有了大概的構思,比如大概幾層循環就可以完成
然后第二步呢,就是觀察網頁,簡單的說,就是查看網頁的元素是否存在源代碼中,這就分2步了:
1、存在,那么簡單了:查看頁碼,構建翻頁循環,根據網頁結構選擇適當的匹配方式,獲取內容,存儲的方法等等按部就班的寫就行!這類網站適用于大部分的盜版小說網等等,大家自己去看看就知道了
2、不存在,那么就去開發者工具中查看是否是ajax動態加載,是否可用抓到json數據:
a、如果存在json數據:類似百度圖片,下拉加載內容,就可以抓取json包,然后觀察請求地址,找出循環規律,遍歷json數據,取到相關內容!百度圖片、頭條圖集就是屬于這類網站,有興趣可以去看看
b、沒有json數據,不存在ajax加載,這種網站是最煩的,你需要去分析它的內容存在位置,是否js加載,js函數規律等等,比如煎蛋網妹子圖
3、在寫代碼中間,還面臨一個問題,有的網站雖然數據存在源代碼中,但是它們也存在反爬,那么我一般是依次嘗試:只加入UA、加入所有請求頭、嘗試移動端網頁(比如微博爬蟲,移動端的比較好爬)抓取等等手段,在抓取數據中間也存在網站有限制的情況,比如防盜鏈(分析Headers里的Referer參數),封IP(加入ip代理),封賬號(加入cookie池)如果還不行,那就要看最后一條了
4、如果之前的手段還是不行,那么可以嘗試selenium+python的解決辦法,一般的網站都可以搞定了!
最后補充一條!爬到的數據自己想怎么玩就怎么玩,但是不要流傳,不要買賣,我們只做研究學習!!!切記!
不知道為啥,傳不了圖片了。。很尷尬。。大家湊合看吧!
歡迎關注我的個人公眾號:python入門 或者頭條號,大家一起交流學習!