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