chrome 插件 抓取网页qq聊天记录(安利这款插件全名叫webscraper导入成功(组图))
优采云 发布时间: 2022-01-16 08:11chrome 插件 抓取网页qq聊天记录(安利这款插件全名叫webscraper导入成功(组图))
最近看到很多同学都在学爬虫,然后就想到了一个好久不见的插件。很久以前第一次接触爬虫的时候就用过,但是自从接触到python爬虫之后就慢慢的搁置了。今天抽空写个教程,给同学们安利这个插件。如果你刚开始学爬,那一定是你走向人生巅峰的不二选择!
废话不多说,这个插件的全称是webscraper,适用于chrome浏览器。今天,我将尝试用一篇文章文章为大家展示一下webscraper的核心要点。好了,今天就开始我们的网络爬虫探索之旅吧!
一:安装网络爬虫
首先下载插件。百度搜索webscraper资源很多,这里就不过多介绍了。文末附上网盘链接。你也可以自己下载。下载后解压插件包。解压完成后,下一步就是在chrome浏览器中导入!
第 1 步(更多工具 --> 扩展):
第二步(加载插件包):
在扩展页面,点击加载解压后的扩展,选择刚刚解压的插件包。至此,webscraper插件就可以成功导入了。加载后记得选择启用插件,如下图所示。启用后, webscraper 图表会显示在浏览器的工具栏上,即表示 webscraper 已经导入成功!
浏览器上显示网络爬虫图标,表示插件已成功导入!可以正常使用!
二:构建完整的爬虫流程
插件安装好后,我们用webscraper构建一个完整的爬虫项目:
第 1 步(创建站点地图):
一、打开webscraper配置框,有两种方式,一种是鼠标右键,选择勾选,打开开发者工具,另一种是直接按F12快速启动开发者工具,如下图,在开发者工具栏,我们选择webscraper进入webscraper的主配置框。
打开后第一步是创建爬虫站点,点击创建新站点地图,选择创建站点地图,在配置框中配置站点地图名称和起始url,其中起始url为爬虫的起始页,配置如下图所示,然后点击下方的创建站点地图即可创建成功。这里我们以CSDN为例,创建一个站点地图,名称为csdn,starturl为。
第 2 步(添加选择器):
创建站点地图后,第二步是创建选择器。选择器是爬取数据的选择器。它需要用来选择我们要抓取的数据。
我们来看看需要配置的Add选择器的属性:
ID:选择器ID,命名选择器
类型:选择器捕获的数据属性包括Text、Link、image、table、HTML、element等,我们一般使用Text、link、element这几种类型。
选择器:选择抓取元素,点击选择,然后用鼠标选择我们要抓取的元素的位置。鼠标选中后会在页面上高亮显示,高亮的框就是我们要抓取的元素。效果如下图,具体返回的数据取决于我们选择的类型。如果类型为文本,则返回所选区域类的文本数据。如果链接被选中,链接将被返回。如果元素被选中,则返回整个区域的所有元素。
如果我们要选择具有相同规律性的列表数据,例如这里,我们要选择该列中文章的所有标题,我们只需要连续选择两个标题区域,选择器可以自动识别我们要抓取的元素,选择其他结构相同的元素区域,效果如下图:
元素预览:选中后点击元素预览,可以预览选中的元素,看看选择是否正确。
数据预览:点击数据预览,可以预览返回的文本数据。
多个:选择是否选择多个。我们已经讲过如何通过选择器来选择具有相同规律性的元素,但是选择多个是不够的。我们还需要检查多行,这样才能真正抓到多行数据。
Regex:正则表达式,然后从我们抓取的文本数据中进行正则匹配。
延迟:选择器生效前的延迟时间。主要担心的是,由于网速的影响,在页面加载之前就开始爬取页面,容易抓取空数据。
父选择器:为选择器选择父选择器构建树形结构,特别是在构建循环抓取结构的场景中,经常使用父选择器的配置。
这里我们使用选择器来抓取首页文章列表的标题,配置如下,点击保存选择器保存抓取器。如果要抓取其他数据,可以这样配置多个选择器。
第3步(开始scrapy):
设置好选择器后,这时候我们就可以开始抓取数据了。如下图选择刮。在开始爬取之前,需要设置两个参数:
请求间隔(毫秒):默认值为2000ms,即每两次请求之间的间隔。
页面加载延迟(毫秒):默认值为500,等待页面加载的时间长度。
点击开始抓取,正式开始抓取数据。抓取完成后,抓取的数据会显示在窗口中。如果要将数据导出为csv,选择Export data as CSV-->点击download now,即可将抓取的数据导出为CSV。
至此,整个完整的爬虫项目已经搭建完成,是不是很简单!下面我们一起来看看爬虫常见的应用场景,以及如何用webscraper来解决!
三:采集多级数据
搭建了一个简单的csdn文章标题抓取项目后,有同学说,想再抓取一个作者信息,于是尝试搭建一个作者选择器。发现标题和作者不匹配,如下图,是什么情况,是选择器设置错误,但是很明显作者信息也被抓到了!
这个问题也是初学者经常遇到的第一个坑!webscraper 的选择器是相互独立的,也就是说你单独构建的标题选择器和作者选择器是独立工作的,它们之间没有一一对应的关系,所以最后,你看到混乱的结果的数据也正常!
解决方法也很简单,就是应用选择器的多级结构,一级选择器抓取整个元素,元素收录标题和作者信息,然后构建这个元素的子选择器,子选择器从元素中获取标题和作者。.
首先构建父选择器,其中类型需要选择Elements,选择区域需要选择包括标题和作者在内的整个选择区域。
然后,在第二步,构建一个子选择器,从父选择器中点进去,可以进入子选择器的配置框,然后分别配置两个选择器的标题和作者。
配置子选择器有两点需要注意。首先,不能再检查多个。在这里,只有一个元素被再次解析。二是选择子选择器时,要在标有*敏*感*词*的区域进行选择,而标有*敏*感*词*的区域就是父选择器选择的元素区域。
设置好后,再次爬取。这一次,我们终于看到我们的数据恢复正常了!
还有一种多级页面爬取场景,就是进入二级页面,继续爬取数据。在这个场景中,我们要点击每个文章,然后抓取文章的细节。场景是如何实现的?
它也可以通过使用多级结构轻松实现。我们首先构建一个抓取 文章 链接的子选择器,然后在链接选择器下构建一个子选择器。这时子选择器抓取的元素就变成了链接详情文章页面。按照常规的配置方法,我们可以配置捕获文章细节的选择器。
第一步是构建链接选择器。在这里,链接被抓取。选择器类型需要选择链接。我们在这里构建了一个名为 href 的选择器。
第二步,进入href选择器的子选择器配置页面,配置文章详情页的爬取内容。这里我们在 文章 详细信息页面中构建了两个选择器,标题和内容。
构建完成后,我们来看看整个抓取结构,可以通过选择器图来查看。整个抓取结构为三层结构。第一层是元素的抓取,主要解决数据的*敏*感*词*映射问题。该级别是子页面爬取,通过链接构建子选择器来实现。
至此,我们的子页面爬取配置就完成了。
四:翻页场景设计模式
上面我们讲的是抓取单页内容,但在现实中,翻页场景比比皆是。因为一页显示的数据是有限的,我们需要通过翻页来获取更多的数据。对于这个场景,我们先介绍一种通过改变URL来获取翻页数据的方法。让我们看看这个例子。
这是亿欧新闻网站,我们可以找到一个规律,当我们切换页面的时候,它的url会随着页数的变化而变化,这种有规律的翻页场景,我们可以通过设置starturl来实现,如下设置表示从 1 到 100 进行轮询,间隔为 1。
对于一些不规则的翻页场景,我们可以参考哪些翻页设计模式?作为常规做法,我们可以使用循环嵌套爬取结构来实现翻页爬取。下面以亿欧网站为例,看看如何设计一个循环嵌套的爬虫结构。
首先,添加一个选择器以获取到第一级选择器的下一页链接。下一个选择器获取当前页面的下一页链接。元素选择器获取当前页面的元素。
接下来,我们分别配置elements和next的父节点。除了next的父节点的根外,我们还将next本身添加为父节点。
除了元素的父节点的根,我们还添加next作为父节点。
最后我们看一下整个抓取*敏*感*词*,如下图,点击next,可以看到整个结构会无限循环。这样,我们就可以构建一个通用的翻页循环抓取结构了!
五:滚动加载场景的设计模式
通过单击下一页来翻页是一种常见的方式。此外,我们经常看到通过滚动加载更多数据的场景。我们如何解决这种情况?
事实上,这很简单。Webscraper 已经为我们设计了这种元素类型,即在选择器类型中元素向下滚动。选择类型时,只需将前面的元素替换为该类型即可,其他配置方式保持不变。可实现滚动装载数据的抓取。
六:点击加载场景的设计模式
最后说一下点击加载数据的另一个场景!我们经常会遇到需要点击查看更多才能加载更多数据的场景。如何解决这种情况?
当然,我们强大的网络爬虫是必不可少的!webscraper 提供了一个类型,元素点击,可以轻松解决此类问题。接下来,我们来看一个具体的例子。我们以亿欧网站为例,打开新闻栏目,我们可以看到是否要获取更多数据,必须点击查看更多才能加载。
和滚动加载场景一样,我们在一级选择器中设置了元素点击的选择器,配置内容如下:
id:选择器名称
类型:选择元素点击
selector:选择要抓取的元素,和之前的设置一致,只选择元素
点击选择器:这里我们选择查看更多元素,也就是我们点击加载按钮所在的元素。
点击类型:一种是点击一次,即同一个按钮只点击一次,另一种是点击多,同一个按钮可以多次点击,直到按钮发生变化。这里我们选择点击更多,因为我们需要不断点击查看更多才能获得更多数据。
click element uniqueness:判断按钮是否相同的条件,主要用于判断停止条件,有以下四种可供选择:
唯一文本 - 具有相同文本内容的按钮被视为相同按钮
唯一的 HTML+文本 - 具有相同 HTML 和文本内容的按钮被视为相同的按钮
唯一的 HTML - 具有相同 HTML 的按钮被视为相同的按钮
唯一的 CSS 选择器 - 具有相同 CSS 选择器的按钮被视为相同的按钮
丢弃初始元素 - 选择器不会选择在第一个按钮单击之前存在的元素。用于去重场景
延迟:这个需要根据实际情况来配置。如果加载的等待时间配置的太短,很容易造成无法抓取数据的情况。
配置点击选择器后,您可以在其二级子选择器中继续配置您要捕获的数据。
至此,基本常用的爬虫操作已经介绍完毕,掌握以上方法基本可以覆盖80%左右的爬虫场景。当然,webscraper主要用在一些小规模的数据爬取场景中。如果要爬取更*敏*感*词*的数据,大概率会在网站上遇到反爬措施。这时候只能用代码解决了!
有多少朋友在学习python爬虫,给个爪子,评论回复:python爬虫,领取全套python视频教程!