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']
怎么样,是不是这个工具拿来爬静态页面实在太方便了!唯一的缺点就是它无法爬取页面中详细的文本内容,仅仅只能用来提取图片、视频和页面相关的信息,如果你的爬虫是只需要爬取静态页面上的图片和视频,那这个库简直是神器啊。
------------恢复内容结束------------
Python 你见过三行代码的爬虫吗的更多相关文章
- [Python]南邮OJ代码备份爬虫
之前看过Python学习的经验,说以project为导向学习. 自己分析了一下,一般接触Python的都有一定的其它语言基础,对于程序设计的基本逻辑,语法都有一个大概的了解.而Python这样的脚本语 ...
- python 三行代码实现快速排序
python 三行代码实现快速排序 最近在看 python cookbook , 里面的例子很精彩,这里就帮过来,做个备忘录 主要利用了行数的递归调用和Python的切片特性,解释一下每行代码的含义: ...
- python numpy 三行代码打乱训练数据
今天发现一个用 numpy 随机化数组的技巧. 需求 我有两个数组( ndarray ):train_datasets 和 train_labels.其中,train_datasets 的每一行和 t ...
- PHP, Python, Node.js 哪个比较适合写爬虫?
PHP, Python, Node.js 哪个比较适合写爬虫? 1.对页面的解析能力2.对数据库的操作能力(mysql)3.爬取效率4.代码量推荐语言时说明所需类库或者框架,谢谢.比如:python+ ...
- 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。
(转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...
- 三行代码辨别PS
三行代码辨别PS 博主的好友动态和朋友圈经常出现各种图片,博主很想知道这些图片有没有经过PS,于是选择了技术流-- 代码 先放代码为敬,返回结果为TRUE表示进行过PS. isPS.py #!/usr ...
- 如何在python中调用C语言代码
1.使用C扩展CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写的函数-ctypes,SWIG,Python/ ...
- Python十分适合用来开发网页爬虫
Python十分适合用来开发网页爬虫,理由如下:1.抓取网页自身的接口比较与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简练:比较其他动态脚本语言,如perl,shel ...
- flask跨域请求三行代码搞定
flask跨域请求三行代码就可以搞定.但是请注意几点: 第一:只能返回json格式数据,比如list.ndarray等都不可以 第二:返回的对象必须是是字符串.元组.响应实例或WSGI可调用. pyt ...
随机推荐
- 天天动听API
本次分析的是天天动听API,天天动听有一点比较好,就是搜索返回直接有歌曲播放的地址了,并且有无损的音频 搜索歌曲API:http://so.ard.iyyin.com/s/song_with_out? ...
- 《Java基础知识》Java断言
断言:也就是所谓的assertion,是jdk1.4后加入的新功能. 它主要使用在代码开发和测试时期,用于对某些关键数据的判断,如果这个关键数据不是你程序所预期的数据,程序就提出警告或退出. 当软件正 ...
- MySql全文检索使用详解
实际项目中经常会有一个字段存储多个值用逗号分隔的场景,当分开查询的时候,使用模糊查询会非常影响效率.mysql提供了全文检索函数可以有效解决这一问题: 1.数据结构 ID CODE MSG 1 111 ...
- Docker从入门到掉坑(四):上手k8s避坑指南
在之前的几篇文章中,主要还是讲解了关于简单的docker容器该如何进行管理和操作,在接下来的这篇文章开始,我们将开始进入对于k8s模块的学习 不熟悉的可以先回顾之前的章节,Docker教程系列文章将归 ...
- mkdir()提示No such file or directory错误的解决方法
转自:http://www.02405.com/program/php/1692.html 在php中使用mkdir()方法创建文件夹时报错:No such file or directory,出错代 ...
- ElasticSearch 7.4.2 Root mapping definition has unsupported parameters
新建索引 PUT people { "settings":{ "number_of_shards":3, "number_of_replicas&qu ...
- 守护线程,需要通过调用线程方法:setDaemon(boolean on)来进行设置
package seday08.thread;/*** @author xingsir * 守护线程又称为后台线程,默认创建出来的线程都是普通线程, 守护线程需要通过调用线程方法:setDaemon( ...
- com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
1.错误显示 com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details log提示:Generate Si ...
- Java面试题_第二阶段(Servlet、HTTP、Session、JSP、 Ajax、Filter、JDBC、Mysql、Spring)
1.1. 描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成ip地址. (2)浏览器根据 ...
- 深入理解 ZK集群中通过Processor保证数据一致性
入口 书接上篇博客中的ZK集群启动后完成数据的统一性恢复后,来到启动ZkServer的逻辑,接下来的重点工作就是启动不同角色的对应的不同的处理器Processor 如上图查看ZooKeeperServ ...