携手创作,共同成长!这是我参与「掘金日新计划 · 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 下可以直接进行爬取操作
官方手册细看的时候发现,给了一个二次元测试的网站,进入之后,发现作者竟然在官方手册开车,厉害厉害,为了和谐社会,我还是更换一个二次元的网址吧。
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)
在我实际操作中,该函数已经不存在,下图也有相关说明
官方手册给出的下面两句代码,注意在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)
运行结果,整体的体验还可以
写在后面
在github上注意到作者在May 17, 2020
还在更新,那这个框架还是可以应用的,而且足够轻量级。更加值得学习的是作者还自己写了一些参考案例:
github.com/alphardex/l… 那剩下的就交给大家了,一块新的砖头又抛了出来~
帮粉丝写爬虫
会成为这个系列的最后10篇内容,如果你有想要爬取的网站,在评论区告诉我吧