• 爬虫之selenium和webdriver—基础(一)


     在爬取一些网页的时候,会发现网页的有些内容是通过JS动态加载的,也就是说是ajax数据,如下图。整个如果需要查看更多的文章,就需要【阅读更多】按钮,这时页面就会加载更多的文章,但是此时网页的网址是不会改变的,没有类似page这种表示页数的参数。这种加载方式就是ajax数据。这种数据通过普通的爬虫是获取不了的,因为查看网页源代码,你会发现,通过【阅读更多】按钮加载出来的文章并没有出现在网页源代码中。这时候据需要用到一个第三方库selenium和一个工具webdriver。

     selenium库可以模拟鼠标和键盘在网页上面的操作,比如输入内容,鼠标点击等操作。

    一、安装selenium和webdriver

    首先安装selenium库:pip install selenium. 

    如果安装速度特别慢可以加一个国内的镜像源:pip install selenium -i https://mirrors.aliyun.com/pypi/simple/  –trusted-host mirrors.aliyun.com

    下载对应自己电脑上浏览器的webdriver,将压缩包解压,放在不需要权限的纯英文目录下就可以了。常见的webdriver如下:

    chrom浏览器:http://npm.taobao.org/mirrors/chromedriver/

    firefox(火狐浏览器):https://github.com/mozilla/geckodriver/releases

    Edge:https://developer.microsoft.com/en-us/micrsosft-edage/tools/webdriver

    Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/

    以chrome为例(这里虽然显示是32位的,但是64位也可以使用),解压出来就OK,不需要去运行exe文件。

     安装好以后,测试一下安装成功没有.代码运行后,会自动打开一个Chrome页面,并且自动访问百度页面。

     

    二、selenium关闭页面和浏览器

    driver.close()是关闭一个页面。

    driver.quit()是关闭整个浏览器。

    1 from selenium import webdriver
    2 import time
    3 driver_path = 'D:chromedriverchromedriver.exe'
    4 driver = webdriver.Chrome(executable_path=driver_path)
    5 driver.get('https://www.baidu.com')
    6 time.sleep(5)
    7 driver.close()
    8 time.sleep(5)
    9 driver.quit()
  • 相关阅读:
    剑指 Offer 51. 数组中的逆序对
    剑指 Offer 68
    剑指 Offer 68
    JS绑定事件三种方式
    图片懒加载原理及实现
    资源加载过程
    了解JS单线程和任务队列!
    JS函数作用域提升
    JS函数种类详解
    ES6之模版字符串
  • 原文地址:https://www.cnblogs.com/GouQ/p/13092470.html
Copyright © 2020-2023  润新知