楠木軒

手把手教你使用Python打造一款簡易搜索引擎

由 終廷花 發佈於 科技

相信大家在知識共享的這個年代一定在網上下載了很多的文件保存以供日後有時間學習吧,畢竟硬盤空間也比較有限,下面我們就來説説我們要做的這個項目,就是搜索盤搜裏的資源然後進行下載。

/2 項目目標/

實現搜索自己想要的文件,並且下載文件。

/3 項目準備/

使用sublime text 3 開發。因為此次我們需要用到交互式來完成操作,所以需要在sublime text 3 下載一個sublimeREPL插件來進行輔助開發。

/4 項目實現/

1、打開盤搜,並隨意打開一個鏈接,如下圖所示:

2、然後可以看到這個畫面,如下圖所示。

3、此時這個網頁地址為:http://www.pansou.com/?q=成化十四年

由此可以看出它是一個get請求。於是requests.get搞起來,這樣我們就實現了第一步,搜索。於是,可以這樣寫代碼:

import requestsdef down(content):content=input('請輸入要下載的文件名')rep=requests.get('http://www.pansou.com/?q='+str(content))rep.encoding='utf-8'

4、這樣就得到了上個頁面中的網頁源代碼,我們通過搜索相關關鍵字發現竟然搜不到:

5、那麼這是怎麼回事?原來這是因為ajax異步加載導致的部分關鍵代碼顯示不出來。這可就犯難了,換句話説這就觸及到我的知識點盲區了。 因為小編並未學過前端,只知道有ajax這回事,哪裏知道這個問題怎麼產生怎麼解決了。不過不用怕,還好小編有一個大絕招,那就是找接口。我找呀找,終於被我找到了,哎,功夫不負苦心人。如圖所示:

6、發現這是個json格式的所以我們現在可以將他進行讀取,如圖:

7、不容易啊,json的坑很多,於是決定用字典。哈哈哈哈,果然適合自己的才是最香的。

找到了這些東西我們就可以把他們提取出來啦,這樣我們就提取出了第一頁的所有結果,要想提取第二頁的結果只需將p的結果改為2即可。

最終的結果,如圖:

8、接下來我們強化下程序,讓他具有交互功能,供用户選擇。

9、但是我們瞭解到callback一般都是可變的函數,所以真正能用上的就只有兩個參數,q和p,於是:

這樣就完成了指定頁面的文件瀏覽。

下載的話也比較簡單,直接將鏈接複製到瀏覽器中即可,這樣就完成了一個最簡單的搜索引擎了。

/5 小結/

1、不建議抓取太多數據,容易對服務器造成負載,淺嘗輒止即可。 2、本文基於Python網絡爬蟲,利用爬蟲庫,打造了一款簡易的Python搜索引擎。 3、實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。 4、如果需要本文源碼的話,請在公眾號後台回覆“Python引擎”關鍵字進行獲取,覺得不錯,記得給個star噢。

-------------------

【來源:飛總聊IT】

聲明:轉載此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯繫,我們將及時更正、刪除,謝謝。 郵箱地址:newmedia@xxcb.cn