/1 前言/

相信大家在知识共享的这个年代一定在网上下载了很多的文件保存以供日后有时间学习吧,毕竟硬盘空间也比较有限,下面我们就来说说我们要做的这个项目,就是搜索盘搜里的资源然后进行下载。

/2 项目目标/

实现搜索自己想要的文件,并且下载文件。

/3 项目准备/

使用sublime text 3 开发。因为此次我们需要用到交互式来完成操作,所以需要在sublime text 3 下载一个sublimeREPL插件来进行辅助开发。

/4 项目实现/

1、打开盘搜,并随意打开一个链接,如下图所示:

2、然后可以看到这个画面,如下图所示。

3、此时这个网页地址为:

http://www.pansou.com/?q=成化十四年

由此可以看出它是一个get请求。于是requests.get搞起来,这样我们就实现了第一步,搜索。于是,可以这样写代码:

import requests
def 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、如果需要本文源码的话,请在公众号后台回复“引擎”关键字进行获取,觉得不错,记得给个star噢。

end

由菜鸟学Python原班人马打造的公众号【程序员GitHub】,专注于分享GitHub上有趣的资源包括,Python,Java,Go语言前端学习等优质的学习资源,爆料程序员圈的新鲜趣事,热门干货,职场感悟,感兴趣的小伙伴可以来捧场!

程序员GitHub

长按2秒,输入:【福利】

点这里,进菜鸟学PythonB站大本营

手把手教你使用Python打造一款简易搜索引擎相关推荐

  1. 手把手教你用Python打造一款属于你自己的个性二维码

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 今夜闻君琵琶语,如听仙乐耳暂明. / ...

  2. 手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 桃之夭夭,灼灼其华. /1 前言/ ...

  3. 元宵节就要到了,手把手教你用Python打造一款3D花灯

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 独有宦游人,偏惊物候新. 1 前言 ...

  4. 手把手教你用Python打造一款批量下载视频并能可视化显示下载!

    /1 前言/ 平时宅在家的我们最爱做的事莫过于追剧了,但是有时候了,网络原因,可能会让你无网可上.这个时候那些好看的电视剧和电影自然是无法观看了,本期我们要讲的就是怎样下载这些视频. /2 项目目标/ ...

  5. python 视频下载进度_手把手教你用Python打造一款批量下载视频并能可视化显示下载器...

    3.直接上代码和注释. #解析页面def parser: ab=[] rep=requests.get('http://v.u00.cn:93/iappce.htm#sp',timeout=5,hea ...

  6. 手把手教你用Python打造一个语音合成系统

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 大弦嘈嘈如急雨,小弦切切如私语. / ...

  7. 手把手教你用Python改造一款外星人入侵小游戏

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 为学应须毕生力,攀高贵在少年时. ...

  8. 手把手教你用Python打造一个语音合成系统(已生成软件)

    /前言/ 平时我们聊天的时候,也许会想着录制一些自己的声音,而且还想有点特色,也就是所谓的变声,今天我们要说的就是这个变声器的制作,说的高大上点就是语音合成系统. 这个语音合成系统,能实现个性化语音的 ...

  9. 手把手教你使用Python打造绚丽的词云图

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昨夜西风凋碧树,独上高楼,望尽天涯 ...

最新文章

  1. Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
  2. 小功率荧光灯拆解分析
  3. java 报表导出_Java Excel报表导出Demo
  4. Java - 基本语法
  5. 【Linux】一步一步学Linux——Unix发展史(02)
  6. 文档自动排序长短_css 文档流
  7. 浙江省计算机网络技术比赛,[2018年最新整理]0509浙江省三级计算机网络技术历年真题(含答桉).doc...
  8. 通道设置_烟台240家住宅小区、346家重点单位完成消防车通道标识设置
  9. 蒙文字体怎么安装_焘哥带你玩转字体(三)字体的安装及显示问题
  10. Linux_linux常用工具之make/makefile详解
  11. 分享一篇关于社区团购的竞品分析
  12. Linux常用的基本命令14
  13. 迁移应用程序到.NET Framework 4.5:弃用类型与新特性
  14. 阿里云Link Security为企业级区块链提供易用性安全解决方案
  15. 029--PM话术模板
  16. 用户需求规格说明书模板,介绍
  17. 动软出现“添加服务器配置失败,请检查是否有写入权限或文件是否存在“错误
  18. 《组合数学引论》第二章部分习题解答
  19. Vbs脚本编程简明教程
  20. ldc1614 c语言编程,LDC1614读回来的数据为固定值不变

热门文章

  1. 找树左下角的值+路径总和+从前序和中序遍历序列构造二叉树(day18*)
  2. VO,DTO,BO,POJO,PO的概念介绍
  3. CITA 技术白皮书
  4. DL2 - Improving Deep Neural Networks- Hyperparameter tuning, Regularization and Optimization
  5. 打开 mhtml 文件 显示不全_解决 Nginx autoindex 显示文件名不全的问题
  6. 转载:24岁,我终于有了我自己的公司(一个深圳创业者故事)
  7. 重新认识受控和非受控组件
  8. android 1.5 app,萌新编程app
  9. IAP(程序内购买): 完全攻略
  10. matlab 曲线 标注,请问关于Matlab曲线标注问题