网站首页 > 技术文章 正文
来源:Python爬虫与数据挖掘
作者:Python进阶者
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)实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
猜你喜欢
- 2024-10-04 这篇文章教大家如何系统的学Python
- 2024-10-04 全网最新最详细的Python入门教程完整版(15天就能轻松入门)
- 2024-10-04 一站式Web开发指南:探索Python与Django的无限可能!
- 2024-10-04 Python 100天速成中文教程,GitHub标星7700
- 2024-10-04 强烈推荐一个Python库!制作Web Gui也太简单了!
- 2024-10-04 Python实现Web开发 python进行web开发
- 2024-10-04 终于,纯Python 也可以写前端了,干货干货
- 2024-10-04 60秒一口Python:147个demo,助你从新手小白步步进阶编程高手
你 发表评论:
欢迎- 540℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 537℃Oracle分析函数之Lag和Lead()使用
- 536℃几个Oracle空值处理函数 oracle处理null值的函数
- 532℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 528℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 510℃【数据统计分析】详解Oracle分组函数之CUBE
- 495℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 487℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端排序 (47)
- 前端密码加密 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)