⑴ 從python基礎到爬蟲的書有什麼值得推薦
前兩篇爬蟲12(點擊頭像看歷史)
資料僅供學習
方式一
直接爬取網站
http://chanyouji.com/(網站會攔截IP,第二篇就用到了)
1~打開網頁,裡面有很多人分享的游記,我們就進行游記爬取2~點開其中一篇游記,看到鏈接地址形式http://chanyouji.com/trips/,這個時候,思考,這個數字代表的含義?會不會是游記在資料庫的ID,如果是的話那我們換個數字會不會得到別的游記,試一下訪問http://chanyouji.com/trips/,確實看到了不一樣的游記。自己試試
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群
,我們一起學Python!
每天晚上都有大神與你高清視頻免費分享交流行業最新動態湊熱鬧就不要加了群名額有限!
⑵ python爬取豆瓣影評,對於有基礎知識的爬蟲新手來說難度怎麼樣
有基礎知識的話,難度不大。沒什麼難度
⑶ python爬蟲抓取電影top20排名怎麼寫
初步接觸python爬蟲(其實python也是才起步),發現一段代碼研究了一下,覺得還比較有用處,Mark下。
上代碼:
#!/usr/bin/python#coding=utf-8#Author: Andrew_liu#mender:cy"""
一個簡單的Python爬蟲, 用於抓取豆瓣電影Top前100的電影的名稱
Anthor: Andrew_liu
mender:cy
Version: 0.0.2
Date: 2017-03-02
Language: Python2.7.12
Editor: JetBrains PyCharm 4.5.4
"""import stringimport reimport urllib2import timeclass DouBanSpider(object) :
"""類的簡要說明
主要用於抓取豆瓣Top100的電影名稱
Attributes:
page: 用於表示當前所處的抓取頁面
cur_url: 用於表示當前爭取抓取頁面的url
datas: 存儲處理好的抓取到的電影名稱
_top_num: 用於記錄當前的top號碼
"""
def __init__(self):
self.page = 1
self.cur_url = "h0?start={page}&filter=&type="
self.datas = []
self._top_num = 1
print u"豆瓣電影爬蟲准備就緒, 准備爬取數據..."
def get_page(self, cur_page):
"""
根據當前頁碼爬取網頁HTML
Args:
cur_page: 表示當前所抓取的網站頁碼
Returns:
返回抓取到整個頁面的HTML(unicode編碼)
Raises:
URLError:url引發的異常
"""
url = self.cur_url try:
my_page = urllib2.urlopen(url.format(page=(cur_page - 1) * 25)).read().decode("utf-8") except urllib2.URLError, e: if hasattr(e, "code"): print "The server couldn't fulfill the request."
print "Error code: %s" % e.code elif hasattr(e, "reason"): print "We failed to reach a server. Please check your url and read the Reason"
print "Reason: %s" % e.reason return my_page def find_title(self, my_page):
"""
通過返回的整個網頁HTML, 正則匹配前100的電影名稱
Args:
my_page: 傳入頁面的HTML文本用於正則匹配
"""
temp_data = []
movie_items = re.findall(r'<span.*?class="title">(.*?)</span>', my_page, re.S) for index, item in enumerate(movie_items): if item.find(" ") == -1:
temp_data.append("Top" + str(self._top_num) + " " + item)
self._top_num += 1
self.datas.extend(temp_data) def start_spider(self):
"""
爬蟲入口, 並控制爬蟲抓取頁面的范圍
"""
while self.page <= 4:
my_page = self.get_page(self.page)
self.find_title(my_page)
self.page += 1def main():
print u"""
###############################
一個簡單的豆瓣電影前100爬蟲
Author: Andrew_liu
mender: cy
Version: 0.0.2
Date: 2017-03-02
###############################
"""
my_spider = DouBanSpider()
my_spider.start_spider()
fobj = open('/data/moxiaokai/HelloWorld/cyTest/blogcode/top_move.txt', 'w+') for item in my_spider.datas: print item
fobj.write(item.encode("utf-8")+'
')
time.sleep(0.1) print u"豆瓣爬蟲爬取完成"if __name__ == '__main__':
main()
運行結果:
⑷ 剛開始學習 Python 到可以寫出一個爬蟲大約需要多長時間
學習 Python 的三種境界
前言
王國維在《人間詞話》中將讀書分為了三種境界:「古今之成大事業、大學問者,必經過三種之境界:『昨夜西風凋碧樹,獨上高樓,望盡天涯路』。此第一境也。『衣帶漸寬終不悔,為伊消得人憔悴。』此第二境也。『眾里尋他千網路,驀然回首,那人卻在燈火闌珊處』。此第三境也。我從入門Python到現在也沒有多少時間,所以寫如此大的一個題目必定會引發各種批判,當然我沒有想造一個大新聞,只是想根據自己的學習歷程做一個簡單的總結,同時將這三個階段對應的一些好的書籍簡單介紹介紹。
正文
Python的用途十分廣泛,不同的程序員將其用於不用的領域,不同的程序員將自己的代碼打包成庫,供其他程序員使用,從而少造輪子,各種庫的使用,加之Python本身的靈活性、易讀性,易寫性,使用的人越來越多,tiobe統計編程語言的使用率如下:Python在一年之間使用排行榜中上升了3名,而且各大公司在招聘員工的時候如果能掌握Python,肯定是一個加分項,因為Python在文本處理,小程序的寫作方面具有太強的優勢,前段時間一個朋友讓幫忙改下他們公司logo的顏色,第一個想到的就是用Python,女票讓我幫她預處理大數據,第一個想到的仍然是Python等等,當然並沒有說其他語言不好,也不是為了討論哪種語言更好,只是Python確實是一門會讓人幸福的語言,下面粗淺的說說我對Python學習過程中的境界劃分以及推薦書籍。
這里首先推薦在騰訊官方課程平台上進行直播學習,有號就能無償一直學,每天晚上都是高清直播(企鵝球球:1129中間是834最後加上這個903連在一起就可以了),除此之外基於python2.7在網上的書籍適合於重頭開始一直讀完,作為一個開發人員,除了基本的語法,這本書裡面提到了一些其他的常用的庫,看了廖老師寫的很多東西,感覺他的思路,以及寫博客寫書的高度,概括性,原理性都十分好,這本書讀完之後,相信就可以動手寫很多東西了,可以盡情的玩轉Python解釋器了。
另外還有一本書《Python參考手冊》,這本書也十分的有用,關於Python的方方面面基本都囊括在內,可以作為一本Python字典來查詢使用方法,十分好用。
掌握一門語言最好的方法就是用它,所以我覺得邊學語法邊刷Leetcode是掌握Python最快的方式之一。
很多隻需要將Python作為腳本或者就是寫一些小程序處理處理文本的話,到這一個階段就足夠了,這個階段已經可以幫我們完成很多很多的事情了。但是如果是一個專業學習Python的,恐怕還需要努力的升級:首先,國內的大多數人都是學習了其他語言(C,C++,Java等)之後來學習Python的,所以Python和這些語言的不同,也就是pythonic的東西需要一些時間去學習了解和掌握;另外,對於自己領域的領域的庫構架的掌握也需要很長的時間去掌握;最後,如果想獨立完成一個Python的項目,項目的布局,發布,開源等都是需要考慮的問題。
第二個階段:中級,掌握自己特定領域的庫,掌握pythonic寫法,非常熟悉Python的特性
推薦的第一本書是《編寫高質量代碼–改善python程序的91個建議》,這本書大概的提了下Python工程的文件布局,更多的總結了如何寫出pythonic的代碼,另外,也介紹了一些常用的庫。
要想深入的了解Python,有的時候看看Python的源碼也是很重要的,自己通過讀懂源碼,來徹底的了解Python的核心機制,這里推薦《Python源碼剖析——深度探索動態語言核心技術》,這本書並沒有看完,只是在需要深入了解Python某個功能或者數據結構的時候看看相關章節,也覺得受益匪淺。
自己領域的書籍和資料也肯定很多,比如web開發的構架都有很多,只有了解熟悉了所有構架,在選擇的時候才能衡量利弊,然後深入掌握某些構架。
這個階段過後,可以寫出pythonic代碼,可以通過PEP8的檢查,可以為開源社區做貢獻了,可以將一個Python文件寫的十分好,但是如果要用Python開發一個大型項目,還是有很多東西需要掌握的,比如項目的文檔,項目的發布,下載,項目性能和案例等等。
第三個階段:高級,從整個工程項目著眼,考慮document,distribution,性能優化等
目前只看了一本書《the hacker guide to python》,看的是英文版的,這本書對項目的布局,文檔,性能,發布等做了很多詳細的介紹,我覺得寫的還是很不錯,只不過本人還需要再讀幾遍。
對於大多數人來說,很難有機會從頭開始一個有意義的大型工程項目,所以自己可以用Python實現一些簡單的功能,簡單的項目,這個靈感可以去知乎或者quora搜索,很多前輩都分享了自己的經驗。
從大局入手,規劃好項目的布局,設定好相應的文檔說明,提供工程下載安裝的方法,帶幾個demo,每個類,每個函數,每行代碼都反復推敲,寫出pythonic的程序,相信這時候Python於我們便是信手拈來了!
總結
本文只是我認為的學習Python的三種境界,以我粗淺之眼光,肯定有太多太多的不足,而且自己也就是一個介於初級和高級Python程序員的水平,寫這個文章,也算是給自己設立的一個目標吧。
⑸ 如何一個月入門Python爬蟲,輕松爬取大規模數據
scrapy 是一個功能非常強大的爬蟲框架,它不僅能便捷地構建request,還有強大的 selector 能夠方便地解析 response,然而它最讓人驚喜的還是它超高的性能,讓你可以將爬蟲工程化、模塊化。
⑹ 學Python做web還是爬蟲未來那個發展比較好
光會一種待遇不好,要定位全棧。
⑺ 如何入門 Python 爬蟲
首先,python可以說是自己在眾多編程語言中最鍾愛的,如果你有其他語言基礎,學python是很容易的,在我看來,python是一種非常接近人類思維的語言,初期的話,建議可以從官方文檔開始,舉的例子完全可以幫助你快速入門。
⑻ Python爬蟲:如何在一個月內學會爬取大規模數
沒有用過Python爬蟲,不過想在這里推薦一下前嗅的foreSpider爬蟲,對於沒什麼寫代碼經驗的用戶同樣適用:foreSpider爬蟲採集數據,一般分為可視化採集和腳本採集,可視化採集只要按照幫助向導,配置相關鏈接抽取、數據抽取,就可以採集到相關數據;腳本採集,需要依照腳本文檔來進行適當的鏈接、數據抽取,以達到准確採集數據的效果
⑼ 從python基礎到爬蟲的書有什麼值得推薦
五:總結
學習使用Scrapy遇到很多坑,但是強大的搜索系統不會讓我感覺孤單。所以感覺Scrapy還是很強大的也很意思,後面繼續學習Scrapy的其他方面內容。
github地址加群
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入學習交流群
,我們一起學Python!
⑽ python爬蟲學習教程哪個好
第一階段 基礎入門:
1. 計算機網路的基礎,包括:tcp/ip協議、socket網路編程、http協議
2. 前端的基礎:主要是javascript基礎和ajax基礎
3. python的基礎語法
4. 資料庫的基礎:任何一個資料庫都行,但是強烈建議學習mysql或者postgresql
5. html解析的基礎:beautifulsoup的使用、xpath和css選擇器
6. html下載的基礎:urllib或者requests使用
7. 數據保存的基礎:如果你要使用的是關於資料庫(mysql)的話可以使用pymysql、接下來使用peewee,如果你需要使用的是文檔資料庫(mongodb)的話,可以選擇pymongo,然後使用mongoengine
第二階段 爬蟲實戰
經過前面的階段,你只是具備了最基本的爬蟲知識而已,想要真正的抓取爬蟲你還需要更進一步的學習
1. 模擬登錄:你需要知道cookie和session登錄的原理、如果需要針對性的抓取微博等你還需要知道oauth2.0的具體過程
2. 動態網頁分析技術: 最基本的方法是通過分析js和html等基礎方法,但是很多網站會將這部分邏輯做的很復雜,所以你需要進一步學習selenium和chromedriver相關的基礎
3. 驗證碼的識別:
這里包括最基本的驗證碼識別,比如ocr識別等,對於更復雜的驗證碼如果想要自己去識別的話你還得懂機器學習和圖像識別技術,簡單的方法就是調用第三方服務
4. 對於反爬,你需要懂nginx的基本配置,你需要更一步熟悉http協議的細節
5. 爬蟲的開發需要配置多線程開發,所以你需要更加懂多線程的開發,這里包括了線程間通信和線程同步等基礎
第三階段 爬蟲監控和運維
一個爬蟲上線生產環境你得監控你的爬蟲吧,監控一個爬蟲你最好是用頁面管理吧,所以你得懂:
1. linux基礎,用於部署服務
2. docker基礎,docker部署的優勢和流行相信大家都懂的
3. django或者flask,因為我們需要開發頁面去監控爬蟲
第四個階段 爬蟲框架和分布式爬蟲
1. 你得懂至少一門爬蟲框架scrapy或者pyspider
2. 懂了scrapy你還需要知道scrapy-redis知道如何去解決分布式爬蟲的問題
3. 你得懂分布式存儲的方案:hadoop的一套解決方案
4. 你得懂mongodb文檔資料庫
5. 你得懂elasticsearch搜索引擎
6. 你得懂kafaka這種分布式發布訂閱消息系統
7. 分布式相關的基礎如分布式鎖等你需要知道原理
第五個階段 爬蟲的應用
這個階段就是屬於應用的領域了,比如你要做人工智慧,你得懂人工智慧的相關知識,你如果做數據分析你得學習數據分析的基本知識,如果你是想做web服務你需要學習web開發的基礎,如果你是想做搜索引擎和推薦系統你得懂相關的基礎才行。