调用浏览器的爬虫——selenium

在进行网页爬取时,有些网页比较难分析,应用的很多动态特性;还有可能会在header中封装了很多奇奇怪怪的不知道怎么获取的数据;这时候可能会想如果能用程序吊起浏览器来,自动执行点击,拖动等动作就好了

selenium就是这样一个工具包

  • 先看一个例子

    selenium效果示例

    上面所有的操作都是selenium程序控制执行的,当然,执行遇到了问题,卡在了图片验证上,这个之后再说,先看一下上述操作是怎么完成的

  • selenium安装

    现在很多包的安装已经很容易了,直接

    即可

  • 初始化一个selenium.webdirver对象

    后面所有的操作浏览器动作将通过这个对象来完成,主要语法如下

    其中executable_path需要传入一个本地的浏览器驱动路径,webdirver对象将通过它来操作浏览器,关于谷歌的这个驱动,可以参见https://blog.csdn.net/weixin_43746433/article/details/95237254 这篇博客进行下载,我测试时并没有跟我环境对应的64位驱动,我下载了32位的也可用

    options是用来设置这个对象的操作属性的,它应该这么定义

    注意options的声明要在webdriver之前

    当然,也可以声明 其他浏览器的webdriver对象,such as

  • 这个dirver怎么用
    • 跳转到一个网页

    • 定位到一个html元素

    find

    • 定位到元素后如何操作

    such as

    • 如果从网页中获取多媒体资源

    使用bs4.BeautifulSoup可以方便的对网页进行解析,这里以获取页面内京东的logo为例进行程序说明

    这样图片就被保存了下来

    logo

    顺便也获取一下上面的图片验证的那张图,这张图费了些周折,京东的这个页面弄得七转八绕的,可以在F12分析源码的时候通过Ctrl+F搜索.png来快速定位到这张图片,而且这样图不是直接给了他url,是以base64的形式直接出现在html源码中的

    verify

    这个图片验证怎么通过呢,我之后应该会再写一些东西,有兴趣的可以关注一下

  • 参考文献

    Selenium-Python中文文档

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注