不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python網(wǎng)絡(luò )爬蟲(chóng),就多了一項技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢到底體現在哪里:Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰項目代碼大全(長(cháng)期更新,歡迎補充),學(xué)習python網(wǎng)絡(luò )爬蟲(chóng)的一點(diǎn)心得??。
1.Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰項目代碼大全(長(cháng)期更新,歡迎補充)
原文鏈接:知乎專(zhuān)欄爬天爬地 —— 由 軒轅小羽 分享Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰項目代碼大全(長(cháng)期更新,歡迎補充)阿橙 · 5 個(gè)月前 [1]- 微信公眾號爬蟲(chóng)?;谒压肺⑿潘阉鞯奈⑿殴娞柵老x(chóng)接口,可以擴展成基于搜狗搜索的爬蟲(chóng),返回結果是列表,每一項均是公眾號具體信息字典。 [2]- 豆瓣讀書(shū)爬蟲(chóng)??梢耘老露拱曜x書(shū)標簽下的所有圖書(shū),按評分排名依次存儲,存儲到Excel中,可方便大家篩選搜羅,比如篩選評價(jià)人數>1000的高分書(shū)籍;可依據不同的主題存儲到Excel不同的Sheet ,采用User Agent偽裝為瀏覽器進(jìn)行爬取,并加入隨機延時(shí)來(lái)更好的模仿瀏覽器行為,避免爬蟲(chóng)被封。zhihu_spider [3]- 知乎爬蟲(chóng)。此項目的功能是爬取知乎用戶(hù)信息以及人際拓撲關(guān)系,爬蟲(chóng)框架使用scrapy,數據存儲使用-user [4]- Bilibili用戶(hù)爬蟲(chóng)??倲祿担?0119918,抓取字段:用戶(hù)id,昵稱(chēng),性別,頭像,等級,經(jīng)驗值,粉絲數,生日,地址,注冊時(shí)間,簽名,等級與經(jīng)驗值等。抓取之后生成B站用戶(hù)數據報告。 [5]- 新浪微博爬蟲(chóng)。主要爬取新浪微博用戶(hù)的個(gè)人信息、微博信息、粉絲和關(guān)注。代碼獲取新浪微博Cookie進(jìn)行登錄,可通過(guò)多賬號登錄來(lái)防止新浪的反扒。主要使用 scrapy 爬蟲(chóng)框架。_crawler [6]- 小說(shuō)下載分布式爬蟲(chóng)。使用scrapy,redis, mongodb,graphite實(shí)現的一個(gè)分布式網(wǎng)絡(luò )爬蟲(chóng),底層存儲mongodb集群,分布式使用redis實(shí)現,爬蟲(chóng)狀態(tài)顯示使用graphite實(shí)現,主要針對一個(gè)小說(shuō)站點(diǎn)。 [7]- *知網(wǎng)爬蟲(chóng)。設置檢索條件后,執行src/.py抓取數據,抓取數據存儲在/data目錄下,每個(gè)數據文件的*行為字段名稱(chēng)。 [8]- 鏈家網(wǎng)爬蟲(chóng)。爬取北京地區鏈家歷年二手房成交記錄。涵蓋鏈家爬蟲(chóng)一文的全部代碼,包括鏈家模擬登錄代碼。scrapy_jingdong [9]- 京東爬蟲(chóng)?;趕crapy的京東網(wǎng)站爬蟲(chóng),保存格式為csv。QQ-Groups-Spider [10]- QQ 群爬蟲(chóng)。批量抓取 QQ 群信息,包括群名稱(chēng)、群號、群人數、群主、群簡(jiǎn)介等內容,最終生成 XLS(X) / CSV 結果文件。wooyun_public [11]-烏云爬蟲(chóng)。 烏云公開(kāi)漏洞、知識庫爬蟲(chóng)和搜索。全部公開(kāi)漏洞的列表和每個(gè)漏洞的文本內容存在mongodb中,大概約2G內容;如果整站爬全部文本和圖片作為離線(xiàn)查詢(xún),大概需要10G空間、2小時(shí)(10M電信帶寬);爬取全部知識庫,總共約500M空間。漏洞搜索使用了Flask作為web server,bootstrap作為前端。2016.9.11補充: [12]- 去哪兒網(wǎng)爬蟲(chóng)。 網(wǎng)絡(luò )爬蟲(chóng)之Selenium使用代理登陸:爬取去哪兒網(wǎng)站,使用selenium模擬瀏覽器登陸,獲取翻頁(yè)操作。代理可以存入一個(gè)文件,程序讀取并使用。支持多進(jìn)程抓取。findtrip [13]- 機票爬蟲(chóng)(去哪兒和攜程網(wǎng))。Findtrip是一個(gè)基于Scrapy的機票爬蟲(chóng),目前整合了國內兩大機票網(wǎng)站(去哪兒 + 攜程)。163spider [14] - 基于requests、MySQLdb、torndb的網(wǎng)易客戶(hù)端內容爬蟲(chóng) [15]- 豆瓣電影、書(shū)籍、小組、相冊、東西等爬蟲(chóng)集QQSpider [16]- QQ空間爬蟲(chóng),包括日志、說(shuō)說(shuō)、個(gè)人信息等,一天可抓取 400 萬(wàn)條數據。baidu-music-spider [17]- 百度mp3全站爬蟲(chóng),使用redis支持斷點(diǎn)續傳。tbcrawler [18]- 淘寶和天貓的爬蟲(chóng),可以根據搜索關(guān)鍵詞,物品id來(lái)抓去頁(yè)面的信息,數據存儲在mongodb。stockholm [19]- 一個(gè)股票數據(滬深)爬蟲(chóng)和選股策略測試框架。根據選定的日期范圍抓取所有滬深兩市股票的行情數據。支持使用表達式定義選股策略。支持多線(xiàn)程處理。保存數據到JSON文件、CSV文件。[20]-百度云盤(pán)爬蟲(chóng)。 [1]: GitHub - Chyroc/: 基于搜狗微信搜索的微信公眾號爬蟲(chóng)接口[2]: GitHub - /: 豆瓣讀書(shū)的爬蟲(chóng)[3]: GitHub - LiuRoy/zhihu_spider: 知乎爬蟲(chóng)[4]: GitHub - /bilibili-user: Bilibili用戶(hù)爬蟲(chóng)[5]: GitHub - /: 新浪微博爬蟲(chóng)(Scrapy、Redis)[6]: GitHub - gnemoug/_crawler: 使用scrapy,redis, mongodb,graphite實(shí)現的一個(gè)分布式網(wǎng)絡(luò )爬蟲(chóng),底層存儲mongodb集群,分布式使用redis實(shí)現,爬蟲(chóng)狀態(tài)顯示使用graphite實(shí)現[7]: GitHub - yanzhou/: *知網(wǎng)爬蟲(chóng)[8]: GitHub - /: 鏈家爬蟲(chóng)[9]: GitHub - /scrapy_jingdong: 用scrapy寫(xiě)的京東爬蟲(chóng)[10]: GitHub - caspartse/QQ-Groups-Spider: QQ Groups Spider(QQ 群爬蟲(chóng))[11]: GitHub - hanc00l/wooyun_public: 烏云公開(kāi)漏洞、知識庫爬蟲(chóng)和搜索 crawl and search for wooyun.org public bug() and drops[12]: GitHub - /: 網(wǎng)絡(luò )爬蟲(chóng)之Selenium使用代理登陸:爬取去哪兒網(wǎng)站[13]: GitHub - fankcoder/findtrip: 機票爬蟲(chóng)(去哪兒和攜程網(wǎng))。flight tickets multiple webspider.(scrapy + selenium + phantomjs + mongodb)[14]: GitHub - leyle/163spider: 爬取網(wǎng)易客戶(hù)端內容的小爬蟲(chóng)。[15]: GitHub - /: 豆瓣電影、書(shū)籍、小組、相冊、東西等爬蟲(chóng)集 writen in Python[16]: GitHub - /QQSpider: QQ空間爬蟲(chóng)(日志、說(shuō)說(shuō)、個(gè)人信息)[17]: GitHub - Shu-Ji/baidu-music-spider: 百度mp3全站爬蟲(chóng)[18]: GitHub - pakoo/tbcrawler: 淘寶天貓 商品 爬蟲(chóng)[19]: GitHub - benitoro/stockholm: 一個(gè)股票數據(滬深)爬蟲(chóng)和選股策略測試框架[20]:GitHub - k1995/: 愛(ài)百應,百度云網(wǎng)盤(pán)搜索引擎,爬蟲(chóng)+網(wǎng)站--------------------------本項目收錄各種Python網(wǎng)絡(luò )爬蟲(chóng)實(shí)戰開(kāi)源代碼,并長(cháng)期更新,歡迎補充。更多Python干貨歡迎關(guān)注:微信公眾號:Python中文社區Python初級技術(shù)交流QQ群:高級技術(shù)交流QQ群:網(wǎng)絡(luò )爬蟲(chóng)組QQ群:開(kāi)發(fā)組QQ群:量化交易策略組QQ群:數據分析挖掘組QQ群:自然語(yǔ)言處理組QQ群:570364809 -------------------------- Python學(xué)習資源下載:Python學(xué)習思維腦圖大全匯總打包 (密碼請關(guān)注微信公眾號“Python中文社區”后回復“思維”二字獲?。?------------------------
2.學(xué)習python網(wǎng)絡(luò )爬蟲(chóng)的一點(diǎn)心得
網(wǎng)絡(luò )爬蟲(chóng)(英語(yǔ):web crawler),也叫網(wǎng)絡(luò )蜘蛛(spider),是一種用來(lái)自動(dòng)瀏覽萬(wàn)維網(wǎng)的網(wǎng)絡(luò )機器人。簡(jiǎn)單來(lái)說(shuō)就是你寫(xiě)個(gè)腳本去抓別人網(wǎng)頁(yè)上的內容。舉個(gè)例子,上面這張圖片是前程無(wú)憂(yōu)招聘網(wǎng)站上關(guān)于python招聘的一些信息,找工作的時(shí)候你想把這些數據抓下來(lái)放進(jìn)一個(gè)excel表格里面方便你篩選排序對比選擇,這時(shí)你一個(gè)一個(gè)鏈接點(diǎn)開(kāi)去復制里面的對應條目?jì)热?,顯然這個(gè)簡(jiǎn)單重復的操作做多了會(huì )讓你抓狂,這時(shí)你寫(xiě)個(gè)爬蟲(chóng)去幫你機械的抓取,比人工一個(gè)個(gè)復制來(lái)的輕松。(文末贈送我練習時(shí)寫(xiě)的前程無(wú)憂(yōu)爬蟲(chóng))當然,如果你只是想簡(jiǎn)單的復制某一個(gè)網(wǎng)站上的某張圖片或者某段話(huà),寫(xiě)個(gè)爬蟲(chóng)就顯得多此一舉了,畢竟寫(xiě)個(gè)小腳本還是要點(diǎn)時(shí)間的。寫(xiě)這篇文章的初衷是想介紹一下爬蟲(chóng)的大概樣貌和爬蟲(chóng)學(xué)習中兩個(gè)重要的點(diǎn),畢竟當初自己學(xué)的時(shí)候找不到重點(diǎn),有些視頻半天不知道他在干啥。先說(shuō)說(shuō)爬蟲(chóng)大概是怎么玩的。文章開(kāi)頭的引用維基百科對爬蟲(chóng)的解釋?zhuān)f(shuō)它是網(wǎng)絡(luò )機器人,其實(shí)具體的就是寫(xiě)一段代碼,向某一網(wǎng)址(URL)發(fā)送訪(fǎng)問(wèn)請求,這個(gè)動(dòng)作對應的是我們人工訪(fǎng)問(wèn)網(wǎng)站時(shí)把網(wǎng)址輸進(jìn)去或者百度搜索找到網(wǎng)頁(yè)之后點(diǎn)擊進(jìn)入。網(wǎng)站服務(wù)器接收到訪(fǎng)問(wèn)請求后,返回響應文件,對應的就是我們看到的頁(yè)面,只是爬蟲(chóng)拿到的是一個(gè)網(wǎng)頁(yè)文本,而我們看到的是經(jīng)過(guò)瀏覽器排版的的網(wǎng)頁(yè)。拿到響應文件之后,寫(xiě)一些限制性的語(yǔ)句,告訴程序我要哪塊內容,拿到內容后以自己想要的方式保存就行了。爬蟲(chóng)的流程:構建URL-發(fā)送請求-獲取響應-提取內容-保存。來(lái)說(shuō)說(shuō)*個(gè)重要工作:構建URL。探索要爬的網(wǎng)站的URL規律,按規律構建URL。下面是前程無(wú)憂(yōu)搜索昆明的“python”相關(guān)職位彈出來(lái)的網(wǎng)頁(yè)的URL。 = " # 昆明 url_wei = ".html?lang=c&stype=&=0000&workyear=99&cotype=99&" \ "=99&jobterm=99&=99&=99&" \ "lonlat=0%2C0&radius=-1&ord_field=0&=9&fromType=&dibiaoid=" \ "0&address=&line=&=00&from=&welfare="像這樣把URL前后端不變的東西挑出來(lái)。key_word = input("你要爬取的職位名稱(chēng):") zwmc = urllib.parse.quote(key_word) start_page = int(input("你要爬取的起始頁(yè):")) end_page = int(input("你要爬取的結束頁(yè):")) for page in range(start_page,end_page+1): page_url = self.url_tou + zwmc + ",2," + str(page) + self.url_wei上面是構建URL的語(yǔ)句,其中根據用戶(hù)需求不同而改變的就是“zwmc”和“page”,把各條字符串連起來(lái)就是一個(gè)完整的URL了。 有了URL用python的一些第三方庫模擬用戶(hù)發(fā)送請求,得到響應,接下來(lái)就是第二個(gè)重要工作:解析網(wǎng)頁(yè)。網(wǎng)頁(yè)拿回來(lái)了,要搞清楚別人的網(wǎng)頁(yè)文檔類(lèi)型是什么,你需要的數據放在哪個(gè)位置,才能準確的定位自己需要的內容。上圖是一個(gè)網(wǎng)頁(yè)文檔的部分截圖,網(wǎng)頁(yè)的內容都是用前標簽和后標簽卡住的,比如我需要這個(gè)崗位的薪資信息,我就寫(xiě)一條語(yǔ)句告訴程序,我要前標簽和后標簽中間卡住那個(gè)東西,提取內容的方法和途徑很多,比如用正則表達式、、x-path、json-path等等。順便說(shuō)個(gè)相關(guān)的小tricks:不知道你有沒(méi)有遇到過(guò)那種不讓復制內容的網(wǎng)站,如果遇到了想要其中的某段內容,可以試試在網(wǎng)頁(yè)上右鍵選擇“查看網(wǎng)頁(yè)源代碼”,ctrl+F搜索到你要的內容復制就行了。以上只是簡(jiǎn)單說(shuō)了一下我個(gè)人覺(jué)得寫(xiě)爬蟲(chóng)過(guò)程中比較重要的兩個(gè)環(huán)節,其他的還有很多細節和坑要填,如果真的想學(xué)一個(gè)東西,填坑是必然的。簡(jiǎn)單列一下我學(xué)習過(guò)程中遇到的坑:首先是抓包,一次請求會(huì )返回很多響應,哪個(gè)才是你需要的?然后是構建請求頭的問(wèn)題,很多網(wǎng)站都有反爬蟲(chóng)機制,怎么才能偽裝的更像用戶(hù)在用瀏覽器上網(wǎng)?再然后是有些網(wǎng)站直接加密自己的數據,你響應拿回的關(guān)鍵數據是一串亂碼,腫么破?再再然后是一些細小的坑,如get請求和post請求是什么?Ajax異步加載的網(wǎng)頁(yè)怎么搞?返回的響應是json格式怎么辦?有的網(wǎng)頁(yè)有壓縮怎么辦?*就是各種python庫的選擇,關(guān)于請求網(wǎng)頁(yè)的工具,我只用過(guò)urllib和requests,推薦人性化點(diǎn)的requests,解析網(wǎng)頁(yè)的庫,推薦和x-path,正則表達式可以學(xué)學(xué),有用。本文只是涉及到爬蟲(chóng)的一點(diǎn)皮毛,實(shí)際爬蟲(chóng)的體系很龐大,用處也很多,內容復雜,有興趣的請自行探索。我學(xué)爬蟲(chóng)前后大概用了一個(gè)月時(shí)間,大的爬蟲(chóng)框架不行,小的實(shí)用型的爬蟲(chóng)還是沒(méi)問(wèn)題的(對大多數普通網(wǎng)頁(yè)而言),所以想入門(mén)并不難,加油吧騷年。*把文中舉例的這個(gè)前程無(wú)憂(yōu)的爬蟲(chóng)分享出來(lái),只要你會(huì )下載個(gè)python安裝配置好,把代碼貼進(jìn)去就能跑。這是運行時(shí)需要輸入的3個(gè)參數。這是爬完的效果圖。有興趣的朋友可以關(guān)注我的微信公眾號“凌云水手記”回復“前程無(wú)憂(yōu)爬蟲(chóng)”即可下載。附上我覺(jué)得將爬蟲(chóng)講的比較好的一個(gè)B站資源,真心剛學(xué)的時(shí)候看了好多視頻,有些人是咋咋呼呼的,不知所云,確實(shí)他會(huì ),但是他講不出來(lái)啊。
就拿大數據說(shuō)話(huà),優(yōu)勢一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門(mén),找到適合自己的培訓機構,進(jìn)行專(zhuān)業(yè)和系統的學(xué)習。