自动采集文章网站(自动化的网页网页数据采集的过程及应用的方法)
优采云 发布时间: 2021-11-05 11:17自动采集文章网站(自动化的网页网页数据采集的过程及应用的方法)
互联网上有海量的数据,每天都有各种各样的数据展*敏*感*词*融、医学、计算机科学等诸多研究课题需要获取大量数据作为样本进行科学分析,传统手工采集操作从根本上难以处理数据采集,甚至如果能采集到,需要花费大量的时间和成本,自动化网站采集应用诞生了。一般采集数据是各种客户端呈现的结构化数据,如浏览器、APP等,数据存储在客户端。采集数据不会在服务器端采集,一方面比较麻烦,另一方面也是*敏*感*词*。许多客户端还需要身份验证,例如用户名和密码。
网站采集的原理基本一致。比如国内比较多的使用采集器某头,某某鱼等,客户端先发送请求,服务器接受请求后返回对应的数据,并采集器找到对应的来自返回数据的数据。采集器根据采集的要求自动发出不同的请求,比如模拟一个人的点击过程或者自定义规则。网站的数据获取非常依赖于数据的结构,必须根据不同的数据结构制定不同的采集规则。基本上每个网页的数据结构都是不同的,所以必须根据具体的网页来制定规则。
我们以一个网站的页面为例来说明网站data采集的过程。
确定需要获取数据的网页
网页的结构如下图所示。这是微信小程序源码的下载页面。您需要获取以下内容: 1 源代码名称(模仿天猫首页);2 获取模板截图地址
2.获取对应的元素信息
这个比较简单,在浏览器中按F12就可以找到对应的元素。该页面的元素信息如下:
源代码名称:
元素的类名 pin-title 在此页面上是唯一的;
模板截图:
元素的类名 pin-info 在此页面上是唯一的;
(三)在程序中实现内容获取
使用 QWebEngine 实现对网页的操作。
首先为QWebEngineView设置网页地址,登录网站,可以自己搜索,网上有很多;
二、编写javascript代码获取指定元素的内容,代码如下,为了输出方便,下面的ret是一个参数:
QString jscode = "var i,title,elements,imgs='',ret='';"
"elements = document.querySelectorAll('.pins-title strong');"
“标题=元素[0].innerText;”
"elements = document.querySelectorAll('.pins-info .text img');"
"for(i=0;i
“ret='title=';”
“ret += 标题;”
"ret +='&';"
"ret += imgs;"
“退;”;
运行 javascript 代码:
web_view->page()->runJavaScript(jscode,[this](const QVariant& v){qDebug()