十一在家陪孩子,过去一年,因为百度指数抓取那篇文章,很多人添加我的QQ询问百度指数抓取的事情,趁着有点闲心,就把批量全自动抓取趋势给做了。这次改用Python了,屈屈200行代码,搞定登录,查询,截图保存,识别,差值估算。现在程序可以全自动抓取一个词最近三十天的百度指数趋势,采用的预估模式。
要进一步扩展到多词,更细的时间力度,都很容易。
1. 使用selenium + chromedriver来获取百度指数的页面,这里有个坑,chromedriver每次都是全新的配置访问,每次使用百度指数的都需要输入用户名密码和验证码,没有验证码还好,有了验证码,为了实现全自动,chromedriver启动需要每次指定同一个用户数据目录,这样,登录一次,以后就不需要登陆了,直接启动chrome就可以直接访问了。
这里的核心代码是
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=C:\\SomeWhere")
browser = webdriver.Chrome(chrome_options=options)
2. 无论是估算还是精确计算,都需要用到selenium的截图+tesseract的ocr。截图很容易。OCR会遇到一些麻烦
OCR我遇到的问题是,百度的数字,直接截图,然后ocr
pytesseract.image_to_string(img, lang="eng&