中年|手把手教你使用Python打造一款简易搜索引擎
相信大家在知识共享的这个年代一定在网上下载了很多的文件保存以供日后有时间学习吧 , 毕竟硬盘空间也比较有限 , 下面我们就来说说我们要做的这个项目 , 就是搜索盘搜里的资源然后进行下载 。
/2 项目目标/
【中年|手把手教你使用Python打造一款简易搜索引擎】实现搜索自己想要的文件 , 并且下载文件 。
/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噢 。
推荐阅读
- 中年|北斗“一张网”可实现全天候、高精度、自主可控服务
- 中年|Python编程语言有什么独特的优势呢?
- 中年|谈一谈我的十年机械工作经历
- 中年|弹无虚发的背后,国产弹药质量把关人,精密机床都要自叹不如
- 中年|宿迁深圳招商再结硕果,签约项目19个,协议总投资158亿元
- 中年|苹果:已终止Epic Games开发者账号
- 中年|圆满的结局!苹果微信之间不用再二选一,美国政府还是做出让步
- 中年|国家能源集团成功研发矿用卡车能耗制动开关预警装置
- 电脑使用技巧|网口不够用?一招教你将 NAS 变身虚拟交换机
- 中年|什么是余压监控系统?余压监控系统如何接线和安装?一篇文章搞懂
