zoukankan      html  css  js  c++  java
  • python+selenium动态抓取网页数据

    window+python+selenium

    1.下载selenium

    cmd pip3 instatll selenium

    2.下载浏览器对应驱动版本

    查看浏览器版本:chrome://version

    驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html

    驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/

     

    把此驱动放在python安装目录,与phthon.exe同级

    编写代码及代码测试

    from selenium import webdriver
    '''
    @Author: 马家立
    @Date: 2020/12/22 17:00
    @Description: 延时抓取动态网页数据
    '''
    
    
    print("开始爬取数据...")
    option = webdriver.ChromeOptions()
    # “no-sandbox”: 沙盒模式运行,以最高权限运行
    option.add_argument('-no-sandbox')
    # 大量渲染时候写入/tmp而非/dev/shm
    option.add_argument('-disable-dev-shm-usage')
    # “headless”:不用打开图形界面,若注释则会打开浏览器
    option.add_argument('-headless')
    # 不加载图片, 提升速度
    option.add_argument('-blink-settings=imagesEnabled=false')
    # 谷歌文档提到需要加上这个属性来规避bug
    option.add_argument('-disable-gpu')
    # 添加变量配置
    browser = webdriver.Chrome(options=option)
    # 访问百度
    browser.get('http://www.baidu.com/')
    # 打印标题
    print(browser.title)
    # 关闭浏览器
    browser.quit()

    Ps:ChromeOptions详情可见:https://www.jianshu.com/p/8ec70859ae03

    Linux+python+selenium

    1.下载selenium

    pip3 instatll selenium

    2.安装chrome

    Linux 命令安装最新的 Google Chrome

    yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

    或者下载到本地再安装

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
    yum install ./google-chrome-stable_current_x86_64.rpm

     安装必要的库

    yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

    3、安装及配置 chromedriver

    Linux命令查看谷歌浏览器版本 

    google-chrome --version

     

    Window下驱动下载:

    驱动下载国外连接:http://chromedriver.storage.googleapis.com/index.html

    驱动下载国内镜像连接(推荐):http://npm.taobao.org/mirrors/chromedriver/

     将下载好的Linux下chrome对应驱动上传至Linux服务器上

     

    推荐放在/usr/bin 目录下:

    /usr/bin/chromedriver

     给予执行权限

    chmod +x /usr/bin/chromedriver

    配置环境变量

    export PATH=$PATH:/usr/bin/chromedriver/

    编写代码及代码测试

    import platform
    from selenium import webdriver
    '''
    @Author: 马家立
    @Date: 2020/12/22 17:30
    @Description: 延时抓取动态网页数据
    '''
    
    
    print("开始爬取数据...")
    option = webdriver.ChromeOptions()
    # “no-sandbox”: 沙盒模式运行,以最高权限运行
    option.add_argument('-no-sandbox')
    # 大量渲染时候写入/tmp而非/dev/shm
    option.add_argument('-disable-dev-shm-usage')
    # “headless”:不用打开图形界面,若注释则会打开浏览器
    option.add_argument('-headless')
    # 不加载图片, 提升速度
    option.add_argument('-blink-settings=imagesEnabled=false')
    # 谷歌文档提到需要加上这个属性来规避bug
    option.add_argument('-disable-gpu')
    if platform.system().lower() == 'windows':
        print("windows")
        browser = webdriver.Chrome(options=option)
    elif platform.system().lower() == 'linux':
        print("linux")
        # 指定驱动路径
        browser = webdriver.Chrome("/usr/bin/chromedriver", options=option)
    # 访问百度
    browser.get('http://www.baidu.com/')
    # 打印标题
    print(browser.title)
    # 关闭浏览器
    browser.quit()

    Linux下命令测试

    1.给予执行权限

    chmod +x puBaiduLinux.py

    2.运行爬虫文件

    python3 + 文件名

    测试结果

     
  • 相关阅读:
    HashMap 的数据结构
    JVM的内存区域划分
    分库分表的基本思想
    分表与分库使用场景以及设计方式
    千万数据的分库分表(一)
    用c++实现快速排序和归并排序
    如何查看python版本号?
    python的正则表达式
    python3的队列,比python2更好
    markdown如何插入代码?
  • 原文地址:https://www.cnblogs.com/mjtabu/p/14174292.html
Copyright © 2011-2022 走看看