手把手教你使用Python打造一款简易搜索引擎
/1 前言/
????相信大家在知識共享的這個年代一定在網(wǎng)上下載了很多的文件保存以供日后有時間學(xué)習(xí)吧,畢竟硬盤空間也比較有限,下面我們就來說說我們要做的這個項目,就是搜索盤搜里的資源然后進行下載。
/2 項目目標/
??? 實現(xiàn)搜索自己想要的文件,并且下載文件。
/3?項目準備/
????使用sublime text 3 開發(fā)。因為此次我們需要用到交互式來完成操作,所以需要在sublime text 3 下載一個sublimeREPL插件來進行輔助開發(fā)。
/4?項目實現(xiàn)/
1、打開盤搜,并隨意打開一個鏈接,如下圖所示:
2、然后可以看到這個畫面,如下圖所示。
3、此時這個網(wǎng)頁地址為:
http://www.pansou.com/?q=成化十四年由此可以看出它是一個get請求。于是requests.get搞起來,這樣我們就實現(xiàn)了第一步,搜索。于是,可以這樣寫代碼:
import requests
def down(content):content=input('請輸入要下載的文件名')rep=requests.get('http://www.pansou.com/?q='+str(content))rep.encoding='utf-8'
4、這樣就得到了上個頁面中的網(wǎng)頁源代碼,我們通過搜索相關(guān)關(guān)鍵字發(fā)現(xiàn)竟然搜不到:
5、那么這是怎么回事?原來這是因為ajax異步加載導(dǎo)致的部分關(guān)鍵代碼顯示不出來。這可就犯難了,換句話說這就觸及到我的知識點盲區(qū)了。
因為小編并未學(xué)過前端,只知道有ajax這回事,哪里知道這個問題怎么產(chǎn)生怎么解決了。不過不用怕,還好小編有一個大絕招,那就是找接口。我找呀找,終于被我找到了,哎,功夫不負苦心人。如圖所示:
6、發(fā)現(xiàn)這是個json格式的所以我們現(xiàn)在可以將他進行讀取,如圖:
7、不容易啊,json的坑很多,于是決定用字典。哈哈哈哈,果然適合自己的才是最香的。
找到了這些東西我們就可以把他們提取出來啦,這樣我們就提取出了第一頁的所有結(jié)果,要想提取第二頁的結(jié)果只需將p的結(jié)果改為2即可。
最終的結(jié)果,如圖:
8、接下來我們強化下程序,讓他具有交互功能,供用戶選擇。
9、但是我們了解到callback一般都是可變的函數(shù),所以真正能用上的就只有兩個參數(shù),q和p,于是:
這樣就完成了指定頁面的文件瀏覽。
下載的話也比較簡單,直接將鏈接復(fù)制到瀏覽器中即可,這樣就完成了一個最簡單的搜索引擎了。
/5 小結(jié)/
1、不建議抓取太多數(shù)據(jù),容易對服務(wù)器造成負載,淺嘗輒止即可。
2、本文基于Python網(wǎng)絡(luò)爬蟲,利用爬蟲庫,打造了一款簡易的Python搜索引擎。
3、實現(xiàn)的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。
4、如果需要本文源碼的話,請在公眾號后臺回復(fù)“引擎”關(guān)鍵字進行獲取,覺得不錯,記得給個star噢。
end
由菜鳥學(xué)Python原班人馬打造的公眾號【程序員GitHub】,專注于分享GitHub上有趣的資源包括,Python,Java,Go語言前端學(xué)習(xí)等優(yōu)質(zhì)的學(xué)習(xí)資源,爆料程序員圈的新鮮趣事,熱門干貨,職場感悟,感興趣的小伙伴可以來捧場!
程序員GitHub
長按2秒,輸入:【福利】
總結(jié)
以上是生活随笔為你收集整理的手把手教你使用Python打造一款简易搜索引擎的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11个基于vue的UI框架
- 下一篇: Python爬虫 爬取新浪微博热搜