摘要:知乎多線程爬取問題有哪些可以單曲循環(huán)一星期的歌曲值得推薦那些單曲循環(huán)過的歌,有哪些句子打動了你自打放了寒假,我就一直想把系統(tǒng)的學(xué)習(xí)一遍爬蟲的知識。
知乎多線程爬取問題:
有哪些可以單曲循環(huán)一星期的歌曲值得推薦?
那些單曲循環(huán)過的歌,有哪些句子打動了你?)
自打放了寒假,我就一直想把系統(tǒng)的學(xué)習(xí)一遍Python爬蟲的知識。因為以前只是零碎的學(xué)習(xí),造成許多東西都只是一知半解。
項目靈感來源是覺得單曲循環(huán)的歌至少讓一個人曾經(jīng)在聆聽中感動過,歌曲的歌詞中或許有觸動他的旋律,也可能只是歌詞恰巧與他的人生經(jīng)歷相似。不論怎樣,我覺得能讓一個人單曲循環(huán)的歌必定不差,所以就希望能獲得這些歌曲名稱并在網(wǎng)易云生成歌單。
然而,當(dāng)我看到各位答主的答案后,我就發(fā)現(xiàn)有點麻煩了。
比如:
南山南
----------------我是不安分的分割線---------好多評論里的小伙伴說不得不推薦 傲寒 也是馬頔歌曲里我愛的一首 如果說 南山南是一見鐘情 被開頭的“你在南方的艷陽天 大雪紛飛 我在北方的寒夜里四季如春”驚艷到 一點也不為過 而傲寒 更多是日久生情“如果全世界對你惡語相加 我就對你說上一世情話” 這么美的歌詞 還是在我某天一大凌晨苦逼化妝中猛然注意到的
并且由于這兩首歌 我下定了要學(xué)吉他的年頭 并且我已經(jīng)單曲循環(huán)了兩周了 還沒厭 良心推薦
作者:JoyHsu
鏈接:https://www.zhihu.com/questio...
我發(fā)現(xiàn)有不少答案中歌名是和其它話混在一起的,那這樣的情況怎么處理呢?
很自然的,我想起來了自然語言處理,奈何寒假還沒時間看NLTK庫,不過我倒是知道jieba這個中文分詞庫,然后就直接試了一下,分出來的結(jié)果是這樣的:
南山|n 南|n -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w -|w 我|r 是|v 不安|a 分|v 的|u 分割線|n -|w -|w -|w -|w -|w -|w -|w -|w -|w 好多|m 評論|v 里|n 的|u 小|a 伙伴|n 說|v 不得|v 不|d 推薦|v 傲|a 寒|a 也|d 是|v 馬|n 頔|n 歌曲|n 里|n 我|r 愛|v 的|u 一|m 首|q 如果|c 說|v 南山|n 南|n 是|v 一|m 見|v 鐘情|n 被|p 開頭|v 的|u 你|r 在|p 南方|n 的|u 艷陽天|n 大雪|n 紛飛|v 我|r 在|p 北方|n 的|u 寒|a 夜里|n 四|m 季|n 如春|v 驚艷|v 到|v 一點|m 也|d 不|d 為|p 過|v 而|c 傲|a 寒|a 更多|d 是|v 日|n 久|a 生情|v 如果|c 全世界|n 對|p 你|r 惡語|n 相|d 加|v 我|r 就|d 對|p 你|r 說|v 上|n 一世|n 情話|n 這么|r 美的|n 歌詞|n 還是|d 在|p 我|r 某|r 天|n 一|m 大|a 凌晨|n 苦|a 逼|v 化妝|v 中|n 猛然|d 注意|v 到|v 的|u 并且|c 由于|c 這|r 兩首|n 歌|n 我|r 下定|v 了|u 要|v 學(xué)|v 吉他|n 的|u 年頭|n 并且|c 我|r 已經(jīng)|d 單曲|n 循環(huán)|v 了|u 兩|m 周|n 了|u 還|d 沒|d 厭|v 良心|n 推薦|v
看到了吧,南山和南被分了出來,然而南山南卻沒有分出來,傲寒也沒有分出來,因為用的語料庫都是很久以前的詞語,不可能有歌名這種詞語,然后我一度停了好幾天都在思考怎么解決。
還是無法解決,因為以我目前匱乏的專業(yè)知識只憑借瞎想是沒有作用的。
然后我繼續(xù)分析,發(fā)現(xiàn)有好多人都會使用書名號《》來引用歌名。
比如:
五月天《步步》
類似這樣的答案還是挺多的,我就直接拿正則匹配書名號里面的內(nèi)容。
關(guān)于程序,知乎登錄部分是參考知乎上的一個回答(@xchaoinfo)。
我自己嘗試把爬蟲分成了解析器(parser),數(shù)據(jù)流存儲器(store),以及規(guī)則器(rules),實際上寫的很low。不過也算有了那么點意思。
然后就是加了多線程,關(guān)于多線程的使用,我實測對于爬蟲的效率絕對是有用的,因為爬蟲大部分時間都是等待服務(wù)器響應(yīng)然后下載,所以多線程完全可以把等待的這部分時間來并行處理,節(jié)省時間。
關(guān)于存儲這一部分,有很多選擇,你完全可以簡單選擇存儲到文本文件,也可以存儲到excel文件,最好是存儲到數(shù)據(jù)庫,使用起來會極大的方便。所以我一開始是學(xué)了Python的sqlite3模塊,為了省事,因為sqlite3是自帶的。我在會給出一些我學(xué)習(xí)看到的好的教程。
最后我想提的是,對于BeautifulSoup vs. lxml的效率。以前也沒用過lxml,也沒覺得bs慢,直到我用了它以后,我估計以后再也不想用bs了
首先是bs不支持xpath語法選擇
重點是bs的效率是真的跟lxml差了好多倍
我感覺xpath可以實現(xiàn)簡化,因為你通過它抽取一個特定的元素只需要一個字符創(chuàng)(此處也許有人說bs的select也可以實現(xiàn)啊),但是事實上bs對css selector支持的并不是特別好,而且拋開效率不談,xpath功能很豐富啊,還有很多函數(shù)以及操作符可以使用,如果你認(rèn)真學(xué)習(xí)它的話,文末我也會附上教程鏈接。
我寫的代碼實在是渣,寫代碼量太少了。
可以優(yōu)化的點,爬蟲結(jié)構(gòu)的抽象,異常機(jī)制的使用,!!日志的使用。
參考鏈接:
XPATH教程
Python HTML Parser Performance
High-performance XML parsing in Python with lxml
sqlite3 tutorials
sqlite3 tutorials
代碼鏈接:
Spider Base Class
Zhihu Spider
爬取結(jié)果:
鏈接:excel文件 密碼:c7wt
原定計劃是后續(xù)處理每一個歌名在網(wǎng)易云里面通過API插曲評論數(shù)目,以評論數(shù)目作為關(guān)鍵字排序,然后創(chuàng)建一個歌單。
哇哇~~想想還是蠻有意思的@_@
最后,祝大家新的一年,學(xué)到更多的知識。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38402.html
摘要:使用的爬蟲知乎用戶數(shù)據(jù)爬取和分析閱讀掘金背景說明小拽利用的寫的爬蟲,實驗性的爬取了知乎用戶的基本信息同時,針對爬取的數(shù)據(jù),進(jìn)行了簡單的分析呈現(xiàn)。 Python 知乎爬蟲(最新) - 后端 - 掘金 環(huán)境:python3.x外部依賴包:requestsgithub項目地址 主要的問題:模擬登陸: 知乎現(xiàn)在改用https請求了,數(shù)據(jù)加密,但是問題不大,重要的是網(wǎng)頁數(shù)據(jù)改動了,而且在請求時后...
摘要:今天為大家整理了個爬蟲項目。地址新浪微博爬蟲主要爬取新浪微博用戶的個人信息微博信息粉絲和關(guān)注。代碼獲取新浪微博進(jìn)行登錄,可通過多賬號登錄來防止新浪的反扒。涵蓋鏈家爬蟲一文的全部代碼,包括鏈家模擬登錄代碼。支持微博知乎豆瓣。 showImg(https://segmentfault.com/img/remote/1460000018452185?w=1000&h=667); 今天為大家整...
摘要:用將倒放這次讓我們一個用做一個小工具將動態(tài)圖片倒序播放發(fā)現(xiàn)引力波的機(jī)構(gòu)使用的包美國科學(xué)家日宣布,他們?nèi)ツ暝率状翁綔y到引力波。宣布這一發(fā)現(xiàn)的,是激光干涉引力波天文臺的負(fù)責(zé)人。這個機(jī)構(gòu)誕生于上世紀(jì)年代,進(jìn)行引力波觀測已經(jīng)有近年。 那些年我們寫過的爬蟲 從寫 nodejs 的第一個爬蟲開始陸陸續(xù)續(xù)寫了好幾個爬蟲,從爬拉勾網(wǎng)上的職位信息到爬豆瓣上的租房帖子,再到去爬知乎上的妹子照片什么的,爬蟲...
摘要:一時心血來潮,于是當(dāng)時想,如果拿來分析知乎這個網(wǎng)站,會有什么效果呢。知乎并沒有公開,只能采取爬蟲手段。如此,大概率會觸發(fā)知乎反爬蟲系統(tǒng),所以采取以下方法來回避這個問題代理池。但是,很多情況下知乎還是能通過你的請求得到你的真實。。 網(wǎng)站地址books.bigfacewo.com最近工作去了,感覺人也變懶了,一直想寫一些關(guān)于這個網(wǎng)站東西分享出來。慢慢寫吧。前情提要:對于大神來說,這個網(wǎng)站使...
閱讀 2222·2019-08-30 15:53
閱讀 2447·2019-08-30 12:54
閱讀 1194·2019-08-29 16:09
閱讀 726·2019-08-29 12:14
閱讀 750·2019-08-26 10:33
閱讀 2474·2019-08-23 18:36
閱讀 2956·2019-08-23 18:30
閱讀 2116·2019-08-22 17:09