小众爬虫框架looter,框架作者竟然在官方手册开车

129 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情

梦想橡皮擦,继续给自己加油打气

写在前面

爬虫教程,爬虫框架其实已经非常多了,国内国外很多人都在不停的编写自己的框架,今天继续介绍一款国内自己人写的小框架,希望能对你爬虫编程学习能提供到一些帮助。毕竟知道的越多,你拥有的解决方案才越多。

looter github地址:github.com/alphardex/l… 手册地址:looter.readthedocs.io/en/latest/

再次还是要感谢作者~,没有你的付出,哪里来的我这篇博客,O(∩_∩)O哈哈

编码部分,looter走起

模块安装,注意它这个模块只支持 Python3.6及以上版本。

pip install looter -i pypi.tuna.tsinghua.edu.cn/simple/

在 shell 下可以直接进行爬取操作

官方手册细看的时候发现,给了一个二次元测试的网站,进入之后,发现作者竟然在官方手册开车,厉害厉害,为了和谐社会,我还是更换一个二次元的网址吧。

www.bilibili.com/read/cv6188…

OK,我们先看一下都支持哪些shell操作,不是很多,勉强够用。

shell 步骤

第一步,获取请求到的数据

looter shell www.bilibili.com/read/cv6188…

第二步,通过CSS选择器获得所有的图片地址

imgs = tree.css('figure.img-box img::attr(data-src)').extract()

第三步,保存获取到的链接

save(imgs)

这个地方注意下,有的博客里面写save_imgs(imgs)在我实际操作中,该函数已经不存在,下图也有相关说明

Python爬虫入门教程 81-100 小众爬虫框架looter,框架作者竟然在官方手册开车

官方手册给出的下面两句代码,注意在Linux上才可以使用,windows你需要安装wget才可以。

Path('konachan.txt').write_text('\n'.join(imgs)) wget -i konachan.txt

生成一个爬虫

官网代码应该已经更新过了,所以我看目前网上有人简单介绍了一下这个框架,但是明显不是最新的,本篇博客成型于2020年8月30日,之后框架如果更新,可能跟本文涉及内容也会产生出入,请注意!!

mybilibili 是爬虫的名字

looter genspider mybilibili

之后会生成一个mybilibili.py的文件,然后对文件进行修改即可,例如下面的代码内容

import looter as lt

# domain = 'https://www.bilibili.com/read/cv618801/'
# 为了测试,我们只爬取1页
# tasklist = [f'{domain}/post?page={i}' for i in range(1, 9777)]

def crawl(url):
    tree = lt.fetch(url)
    items = tree.css("figure.img-box img::attr(data-src)").extract()
    print(items)
    for item in items:
        data = {}
        # data[...] = item.css(...)
        yield item

if __name__ == '__main__':
    # 待爬取的URL列表
    tasklist = ['https://www.bilibili.com/read/cv618801/']
    total = lt.crawl_all(crawl, tasklist)
    lt.save(total)

运行结果,整体的体验还可以 Python爬虫入门教程 81-100 小众爬虫框架looter,框架作者竟然在官方手册开车

写在后面

在github上注意到作者在May 17, 2020还在更新,那这个框架还是可以应用的,而且足够轻量级。更加值得学习的是作者还自己写了一些参考案例:

github.com/alphardex/l… 那剩下的就交给大家了,一块新的砖头又抛了出来~

帮粉丝写爬虫会成为这个系列的最后10篇内容,如果你有想要爬取的网站,在评论区告诉我吧