1.爬虫场景与需求
设计一个爬取数据的任务,目标是从某网站,获取到2022年304不锈钢的现货价格记录。
1.1 确认设计流程
访问网页-选取材料类型-输入起始日期-输入结束日期-点击查询-获取表头(数据类型)-获取表列数据-翻页(循环)直至每页的数据抽取完成
1.2 爬虫流程设计
(1)创建爬虫任务
(2)打开网页
拖拽打开网页动作至设计看板,并录入访问网页的页面URL。
参考地址:https://www.exbxg.com/sjzx.jhtml
(3)选择材料类型
拖拽点击动作至设计看板,形成流程,并完善动作名称和点击路径。
路径获取方式:
①在对应网页上,按F12弹出开发者工具。
②点击选择和跟踪元素按钮(快捷键:Ctrl+Shift+C),并点击需要获取路径的元素,右侧窗口即可定位到对应元素。
③选择相应元素,右键复制-选择复制XPath或复制完整的XPath。
④将获取到的Xpath路径粘贴到爬虫动作的路径。
参考路径:/html/body/div[2]/div[2]/div[2]/ul/li[2]
(4)输入开始日期/结束日期
拖拽输入动作至设计看板,形成流程,并完善动作名称和点击路径。
开始日期参考路径:/html/body/div[2]/div[2]/div[3]/div[1]/div/input[1]
结束日期参考路径:/html/body/div[2]/div[2]/div[3]/div[1]/div/input[2]
(5)点击查询
拖拽点击动作至设计看板,形成流程,并完善动作名称和点击路径。
参考路径:/html/body/div[2]/div[2]/div[3]/div[2]/div[1]/button
(6)设置循环动作
添加循环动作,循环类型设置为翻页点击循环,下一页的翻页路径来源如图所示。
根据来源代码中属性的类别和其名称,添加后缀[contains(@class,"next")]
参考路径://*[@id="pagination"]/a[contains(@class,"next")]
(7)获取表头和数据
添加选取元素动作至循环动作内,获取表头和数据,采集路径需要进行加工,并调整字段类型。
表头:将采集路径中的后缀”[数字]“移除掉,收集类型选择fields。
参考路径://*[@id='tablelist']/thead/tr/th
数据:将采集路径中的tr和td的后缀”[数字]“均移除掉,收集类型选择tabeltext。
参考路径://*[@id='tablelist']/tbody/tr/td
(8)存取数据动作
添加存取数据动作至循环动作内,将采集的数据写入到存储表中。
1.3 执行爬虫
(1)点击执行
(2)查看表数据
执行成功,点击完成,并查看表数据,验证循环次数符合实际页数,采集的数据行和列没有缺漏,完成外部数据的循环爬取任务。