双击此处添加文字
爬虫实例-爬取外部数据(循环动作)
来源: | 作者:佚名 | 发布时间: 2024-03-28 | 46 次浏览 | 分享到:

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)查看表数据

    执行成功,点击完成,并查看表数据,验证循环次数符合实际页数,采集的数据行和列没有缺漏,完成外部数据的循环爬取任务