Python 你见过三行代码的爬虫吗
------------恢复内容开始------------
每次讲爬虫的时候都会从“发送请求” 开始讲,讲到解析页面的时候可能大部分读者都会卡住,因为这部分确实需要一点XPATH或者CSS选择器的前置知识。那么有没有不需要这么复杂的操作就能把页面信息读取出来的方法呢?
答案是:有。
Lassie是一个超简单的页面信息检索工具,它能够通过几行代码就获取到页面上的静态信息,比如:页面描述、视频链接、页面标题,页面关键词、图像链接等等。
为什么超简单?感受一下:
import lassie
data = lassie.fetch('https://www.zhihu.com')
print(data)
你只要fetch一下页面,就能得到以下的运行结果(输出为字典):
(base) F:\push191112>python test.py
{'images': [{'src': 'https://static.zhihu.com/static/favicon.ico', 'type': 'favicon'}], 'videos': [], 'description': '有问题,上知乎。知乎,可信赖的问答社区,以让每个人高效获得可信赖的解答为使命。知乎
凭借认真、专业和友善的社区氛围,结构化、易获得的优质内容,基于问答的内容生产方式和独特的社区机制,吸
引、聚集了各行各业中大量的亲历者、内行人、领域专家、领域爱好者,将高质量的内容透过人的节点来成规模地
生产和分享。用户通过问答等交流方式建立信任和连接,打造和提升个人影响力,并发现、获得新机会。', 'locale': 'zh_CN', 'url': 'https://www.zhihu.com', 'title': '知乎 - 有问题,上知乎', 'status_code': 200}
1.安装
如果你还没有安装Python,或者需要Python学习资料的小伙伴可以点击下方链接自行获取
http://note.youdao.com/noteshare?id=7e3c432b74512d52b75aafc4609451b9
安装完成后,请打开你的CMD/Terminal(终端)输入以下命令:
pip install lassie
即可成功安装lassie.
2.使用
现在,用这个工具爬取我们上篇文章的图片链接吧!
import lassie
data = lassie.fetch('https://pythondict.com/ai/python-suicide-detect-svm/')
print(data['images'])
结果:
[{'src': 'https://pythondict.com/wp-content/uploads/2019/11/2019111013222864.png', 'secure_src': 'https://pythondict.com/wp-content/uploads/2019/11/2019111013222864.png', 'type': 'og:image'},
{'src':
'https://pythondict.com/wp-content/uploads/2019/11/2019111013222864.png', 'type': 'twitter:image'},
{'src': 'https://pythondict.com/wp-content/uploads/2019/07/2019073115192114.jpg', 'type': 'favicon'}]
当然,我们还可以用列表解析式,把所有链接放到一个数组里:
print([i['src'] for i in data['images']])
结果:
['https://pythondict.com/wp-content/uploads/2019/11/2019111013222864.png',
'https://pythondict.com/wp-content/uploads/2019/11/2019111013222864.png',
'https://pythondict.com/wp-content/uploads/2019/07/2019073115192114.jpg']
怎么样,是不是这个工具拿来爬静态页面实在太方便了!唯一的缺点就是它无法爬取页面中详细的文本内容,仅仅只能用来提取图片、视频和页面相关的信息,如果你的爬虫是只需要爬取静态页面上的图片和视频,那这个库简直是神器啊。
------------恢复内容结束------------
最新文章
- When it comes to intrusion analysis and forensics
- 深入理解定时器系列第二篇——被誉为神器的requestAnimationFrame
- Asp.net 面向接口可扩展框架之类型转化基础服务
- Laravel教程 一:安装及环境配置
- bzoj2002
- 2015第16周六学习java建议
- JavaScript中NODE操作学习总结
- JavaScript之引用类型介绍
- 一步步优化JVM三:GC优化基础
- H5 Video + DOM
- 【PHP】最详细PHP从入门到精通(三)——PHP中的数组
- Tomcat start.bat闪退:JRE_HOME环境变量配置不对
- django 如何接收bootstrap-table传送的 ajax数组
- Linux某些命令找不到/无法使用
- 基于socket构造c/s 架构软件
- java中URL和File的相互转化
- Reshape以及向量机分类学习和等高线绘制代码
- java-普通类文件@Autowired自动注入为null
- nginx 服务器 在 centos7 系统下的两种方式
- zoj 3229 上下界网络最大可行流带输出方案
热门文章
- 利用ExecuteMultipleRequest来批量导入数据,成功的成功失败的失败,并生成导入结果文件
- sql server查询(SELECT ,where,distinct,like 查询,in,is null,group by 和having,order by,as)
- JavaScript-作用域与作用域链
- 没想到Spring Boot居然这么耗内存,有点惊讶
- postgreSQL安装教程 Windows
- Git实战指南----跟着haibiscuit学Git(第四篇)
- 前端最佳实践——DOM操作
- 在Dynamics CRM中使用Bootstrap
- 设置tabBar的图片/高度/title颜色
- 入职小白随笔之Android四大组件——广播详解(broadcast)