zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    收集一些关于前端的网站(持续更新)
    关于表单设计(登录)的几点感悟
    css样式表中的样式覆盖顺序(转)
    UI设计常用网站(随时更新)
    关于ps安装遇到的问题解决(转载整理)
    【工作记录】解决溢出div自适应的高度问题
    Cross origin requests are only supported for protocol schemes: http, data, chrome-extension, https, chrome-extension-resource. 报错处理
    [css]img垂直居中的方法
    iOS学习第三天杂记
    iOS学习第二天杂记--UI
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7653571.html
Copyright © 2011-2022 走看看