特点
- spring boot 多模块项目
- 图形化定义爬虫过程
- 爬取数据可存入数据库
- 可自定义节点,比如新写一个存入excel的节点。那么当输出时就可以输出到excel中。
- 支持css选择器、正则提取
- 支持Xpath/JsonPath提取
部署环境
1.git下载源码 https://github.com/ssssssss-team/spider-flow
git clone git@gitee.com:ssssssss-team/spider-flow.git
或者直接
2.mysql中执行源码当中db文件下的mysql 建表语句 。然后spider-flow-web项目的application配置mysql的用户名、密码
3.idea打开解压后的项目文件夹,等待依赖下载完成。运行 spider-flow-web项目的SpiderApplication
4.浏览器访问http://localhost:8088/ 点击某个示例,查看它的流程。
学习spider使用方法
1.查看官网上提取网页数据的抽取函数等内容 编写流程化的爬虫过程 spider-flow
(1)图形化节点及每个节点执行后返回值
比如爬取节点执行完后,会产生一个resp变量名的HttpResponse类型的变量
(①)爬取节点执行完后,会产生一个resp变量名的HttpResponse类型的变量。
(②) 循环节点会循环之后的每个节点 此项没值时,执行一次
(③)变量节点 常用来获取页面的某些节点或者文本值
(2)每个类对应方法
通过官网 ‘类型扩展‘查看每个类的方法和返回值
(3)选择html页面元素的方法
(①)Xpath/JsonPath提取
resp变量的xpath方法按照xpath表达式选择元素
一文读懂XPath基本语法_XPath语法详解_XPath教程_H-大叔的博客-CSDN博客 、 XPATH基本语法_xpath语法_明月清风~~的博客-CSDN博客
(2)支持css选择器、正则提取
resp变量的seletor方法按照css选择器选择元素、string变量或resp的regrex方法进行正则提取
(3)支持jsonpath解析 对json数据进行处理
resp变量的json、jsonpath方法,必须是针对json数据。
JsonPath完全介绍及详细使用教程_jsonpath的用法_软件测试情报局的博客-CSDN博客
实战编写爬虫流程
spider示例百度热点分析
(1)页面编写流程,编写提取页面值得变量,然后后台查看报错等信息进行调试
(2)爬取网页分析
如果想获取热点的标题,可以找到div元素的唯一标识是class
(3)流程分析
开始节点代表爬虫开始;
爬取节点定义爬取url的request请求信息,比如请求携带参数、body、cookie、设置页面编码等;
定义变量从爬取到的结果中提取元素值;
输出节点输出到数据库或csv等文件。
定义变量从爬取到的结果中提取元素值,根据css选择器、xpath、jsonpath等方法选择指定节点。点击执行,会输出结果。
Selenium插件
Selenium插件 模拟浏览器点击、获取指定元素等操作。
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。
因为Selenium可以控制浏览器发送请求,并获取网页数据,因此可以应用于爬虫领域。
Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。