基于Selenium与图像识别的百度指数爬虫

本文介绍了如何利用Selenium模拟浏览器操作,并结合Pytesseract进行图像识别,来爬取百度指数。在面临百度指数以图片形式显示的挑战时,作者详细阐述了登录、搜索、定位ViewBox、截图识别等关键步骤,同时讨论了错误处理策略,提供了完整的代码实现。
摘要由CSDN通过智能技术生成

前言

在参与一个项目的时候,得到了这样一个需求,需要我用爬虫爬取某个关键词的百度指数,而当我打开网址后http://index.baidu.com/,简单登陆输入关键词后,发现事情并不那么简单。
这里写图片描述
表面上看,这里只需要模拟鼠标操作,然后读取弹出的每一个ViewBox的数据便大功告成了。但百度不会让你那么简单获取数据。
这里写图片描述
通过这张图我们很开心地发现,百度指数具体的数字竟然是图片!!!每一个数字竟然都是一个图片!!!!显然,常规的思路已经无法驾驭百度指数了,在经过综合考虑过后,我决定采用Python的图像识别包来识别并爬取百度指数。

主要技术介绍

Selenium

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。它可以最大限度地模拟浏览器操作,每运行一个Selenium程序就会打开一个浏览器。
在本次数据采集工作中我们最为核心的是采用了ActionChains这个类,实现了模拟鼠标的移动。每次移动的距离就是从一天到下一天的距离。

 ActionChains(browser).move_to_element_with_offset(xoyelement, x_0, y_0).perform()

Pytesseract

而在获取到图像数据后,我们使用Python一个常用的图像识别包完成了图像数据向数字数据的转换。

 image = Image.open(path + "/zoom/" + printString)
        code = pytesseract.image_to_string
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值