• python爬虫动态html selenium.webdriver


    python爬虫:利用selenium.webdriver获取渲染之后的页面代码!

    1 首先要下载浏览器驱动:  

      常用的是chromedriver 和phantomjs

      chromedirver下载地址:   https://npm.taobao.org/mirrors/chromedriver
      phantomjs下载地址:   http://phantomjs.org/download.html

      使用chromedriver要保证有chrome浏览器

    2 安装

      phantomjs:

        将下载好的文件 解压缩(此处版本用xxx代替了)

        tar -xvf phantomjs-xxxx.tar.bz2

        将压缩结果移动到系统中软件应该呆在的地方去(此处版本用xxx代替了)

        sudo mv phantomjsxxx  /usr/local/src/phantomjs

        创建软连接到系统环境 这样就可以使用phantomjs命令了

        sudo ln -sf  /usr/local/src/phantojs/bin/phantomjs  /usr/local/bin/phantomjs

        将软连接 添加执行的权限

        sudo chmod u+x,o+x  /usr/local/bin/phantomjs

        检验一下正常使用: 返回版本信息就代表能正常使用

        phantomjs --version

      chromedriver:

        将下载的文件移动到软件应该呆的目录去:

        sudo mv chromedriver  /usr/local/bin/chromedriver

        改变用户执行的权限:

        sudo chmod u+x,o+x   /usr/local/bin/chromedriver

        检验是否正常使用:

        chromedriver --version

    3 程序代码:

     1 from selenium import webdriver
     2 import time
     3 # 获取一个Chrome的驱动
     4 driver = webdriver.Chrome()
     5 '''
     6 发送请求
     7 '''
     8 driver.get('http://www.baidu.com/')
     9 
    10 # 设置打开窗口的大小
    11 driver.set_window_size(1024,768)
    12 
    13 '''
    14 获取页面内容的常用方式
    15 '''
    16 # 获取元素并输入内容
    17 driver.find_element_by_id('kw').send_keys('苹果')
    18 # 获取元素并点击
    19 driver.find_element_by_id('su').click()
    20 # 利用xpath获取
    21 # div_list = driver.find_element_by_xpath('//div')
    22 #利用页面内容
    23 # next_page = driver.find_element_by_link_text('下一页').get_attribute('href')
    24 
    25 # 将浏览器页面截图保存本地
    26 driver.save_screenshot('./百度.png')
    27 
    28 # 获得浏览器的页面源码(经过渲染之后)
    29 html = driver.page_source
    30 
    31 print('*'*50)
    32 
    33 # 获取页面的cookies
    34 cookie_list = driver.get_cookies()
    35 # cookie 转换成字典
    36 cookies = { dict['name']:dict['value'] for dict in cookie_list }
    37 print(cookies)
    38 
    39 
    40 # 退出当前页面
    41 driver.close()
    42 # 退出浏览器
    43 driver.quit()
  • 相关阅读:
    异或运算用途
    js正则表达式子校验
    SMART原则
    边际成本,机会成本,沉默成本
    cxf 例子
    CXF使用JMS作为传输协议的配置
    js验证手机号,身份证,车牌号验证
    redis应用
    list集合去重复元素
    lodop
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7653571.html
Copyright © 2020-2023  润新知