------------恢复内容开始------------

每次讲爬虫的时候都会从“发送请求” 开始讲,讲到解析页面的时候可能大部分读者都会卡住,因为这部分确实需要一点XPATH或者CSS选择器的前置知识。那么有没有不需要这么复杂的操作就能把页面信息读取出来的方法呢?

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

答案是:有。

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']

怎么样,是不是这个工具拿来爬静态页面实在太方便了!唯一的缺点就是它无法爬取页面中详细的文本内容,仅仅只能用来提取图片、视频和页面相关的信息,如果你的爬虫是只需要爬取静态页面上的图片和视频,那这个库简直是神器啊。

------------恢复内容结束------------

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄