素材巴巴 > 程序开发 >

B站专栏内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

程序开发 2023-09-03 21:01:23

今天是持续写作的第 20 / 100 天。
如果你有想要交流的想法、技术,欢迎在评论区留言。

平时在编写爬虫的时候,经常碰到需要抓取内页数据的场景,对于 Web Scraper 来说,通过简单的配置也可以实现对内页数据的抓取。

此系列教程涉及图片比较多,学习的时候大量的依赖实操,所以在后续本系列内容将转换为视频载体提供给大家

在这里插入图片描述

缓解一下视疲劳

目标网站分析

今天要抓取的页面是哔哩哔哩专栏,目标是各文章里面的图片地址。参考网址为:https://www.bilibili.com/read/home。

我们需要获取到的就是每篇文章的标题,作者,以及里面的图片。

内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

创建 sitemap 与选择器

因为我们爬取的是列表页,但是核心的数据在内页,这种情况下需要获得标题点击之后的页面,提前获得标题链接。具体设置如下:
selector 的 Type 选择 Link。

内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五
设置完毕之后,选择器内容依次如下,这里注意一个小问题,就是 ID 为 items 的选择器,你在页面中勾选的时候,nth-of-type 其实是编程语言中的 CSS 兄弟选择器,在选择的时候非常容易出现问题,这个小坑以后在视频课中为大家解决吧。

内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五
标题链接选择器设置如下。
内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五
内页相关数据的选择器。
内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

在选择图片的时候,有时会被挡住,需要注意挪动一下,才能点击到 Done selecting 按钮。
内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五
对于图片的选择,Type 需要设置为 Image,还有由于文章中图片是多个,所以 Multiple 需要勾选,实际测试中发现 Web Scraper 爬取内页文本数据还可以,对于图片解析还是差了一些,如果你想要爬取所有图片,需要在内页在嵌套一层,为何要嵌套呢?因为你需要尽可能的让内页所有的图片都加载完毕再获取图片。

由于上述原因导致爬虫的结果如图,下图中发现 link 里面又嵌套了一层 container,该层实现的滚动到页面底部。
内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

在爬取的过程中尽量的不要去看爬取过程了,浏览器晃悠的眼睛晕了。如果你真的想要爬取网页图片,那橡皮擦建议你还是好好学习一下 Python 爬虫,要不还是不要爬取图片的好。
数据获取到之后,顺序是乱掉的,在 Excel 里面稍微排序即可。
内页数据如何抓取,Web Scraper 学习在进一步,无编码学爬虫之五

Web Scraper 脚本分享

你可以直接导入下面我提供的脚本,然后在 Web Scraper 中进行爬取与学习。

{"_id":"bilibili_imgs","startUrl":["https://www.bilibili.com/read/home"],"selectors":[{"id":"items","type":"SelectorElementScroll","parentSelectors":["_root"],"selector":"div.article-item:nth-of-type(-n+10)","multiple":true,"delay":"1000"},{"id":"link","type":"SelectorLink","parentSelectors":["items"],"selector":"a.article-title-holder","multiple":false,"delay":0},{"id":"img","type":"SelectorImage","parentSelectors":["container"],"selector":"img.loaded","multiple":true,"delay":0},{"id":"title","type":"SelectorText","parentSelectors":["container"],"selector":"h1.title","multiple":false,"regex":"","delay":0},{"id":"author","type":"SelectorText","parentSelectors":["container"],"selector":".category-link span","multiple":false,"regex":"","delay":0},{"id":"container","type":"SelectorElementScroll","parentSelectors":["link"],"selector":"div.page-container","multiple":false,"delay":"1000"}]}
 

Link popup selector

刚才选择 Selector 类型用到了 Link,与 Link 类似的还有一个叫做 Link popup selector,该选择器使用与 Link 基本一致,差异在目标网站的实现上,如果目标网站打开一个连接是在新窗口打开,而不是在当前页或者新选项卡中,那需要选择的就是 Link popup selector

写在后面

图片爬取在 Web Scraper 不好用,学会了如何用就好了,不建议你一直使用,爬取图片建议你学习一下像 Python 一样的编程语言,书写真正的爬虫程序。

无编码学爬虫之 Web Scraper,到此基本内容已经讲解完毕了,其它的都是在这些内容上的扩展,如果在深入研究下去,还是要用到编程里面的知识了,该框架属于轻量级的一个小工具,对于非开发工程师来说,很多时候可以快速、便捷的抓取指定数据,尤其对产品人,运营人,自媒体人来说帮助巨大,希望本系列专栏对你有帮助,如果你想学习正规的爬虫程序,可以看看下面连接里面的内容。

想学 Python 编写语言写爬虫,可以订阅橡皮擦专栏哦~

🈲🈲🈲🈲 《爬虫百例教程》点击发现惊喜 🈲🈲🈲🈲


如果你想跟博主建立亲密关系,可以关注同名公众号 梦想橡皮擦,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家点赞评论收藏


标签:

上一篇: 从对象中动态获取属性值 下一篇:
素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。