zoukankan      html  css  js  c++  java
  • Selenium+phanmJs 操作浏览器 爬取数据

    什么是selenium?

    是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。  

    环境搭建

    安装selenum:pip install selenium

    获取某一款浏览器的驱动程序(以谷歌浏览器为例)

    谷歌浏览器驱动下载地址:http://chromedriver.storage.googleapis.com/index.html

    下载的驱动程序必须和浏览器的版本统一,大家可以根据http://blog.csdn.net/huilan_same/article/details/51896672中提供的版本映射表进行对应

     1 from selenium import webdriver # 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。  
     2 import time
     3 
     4 #创建一个浏览器对象,将驱动程序加载到浏览器中
     5 bro=webdriver.Chrome(executable_path=r'D:爬虫相关资料驱动程序chromedriver_win32chromedriver.exe')
     6 bro.get('https://www.baidu.com')
     7 time.sleep(3)
     8 #定位百度的文本输入框
     9 input_text=bro.find_element_by_id('kw')
    10 #在文本框中录入一个关键字
    11 input_text.send_keys('丝袜美女')
    12 time.sleep(1)
    13 #获取搜索id
    14 btn=bro.find_element_by_id('su')
    15 #执行点击事件
    16 btn.click()
    17 time.sleep(3)
    18 #关掉浏览器
    19 bro.quit()
    Selenium爬虫代码
     1 #基于phantomJs浏览器的代码示例 无界面 ,但是可以截图
     2 from selenium import webdriver # 是Python的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。  
     3 import time
     4 
     5 #创建一个浏览器对象,将驱动程序加载到浏览器中
     6 bro=webdriver.PhantomJS(executable_path=r'D:爬虫相关资料驱动程序phantomjs-2.1.1-windowsinphantomjs.exe')
     7 bro.get('https://www.baidu.com')
     8 time.sleep(3)
     9 #进行截图
    10 bro.save_screenshot('1.png')
    11 #定位百度的文本输入框
    12 input_text=bro.find_element_by_id('kw')
    13 #在文本框中录入一个关键字
    14 input_text.send_keys('丝袜美女')
    15 time.sleep(1)
    16 #获取搜索id
    17 btn=bro.find_element_by_id('su')
    18 #执行点击事件
    19 btn.click()
    20 time.sleep(3)
    21 bro.save_screenshot('2.png')
    22 #打印页面数据
    23 print(bro.page_source)
    24 #关掉浏览器
    25 bro.quit()
    PhanmJs爬虫代码
     1 #登录qq空间
     2 bro = webdriver.Chrome(executable_path=r'D:爬虫相关资料驱动程序chromedriver_win32chromedriver.exe')
     3 bro.get('https://qzone.qq.com/')
     4 #观察某个标签如果是存在一个frame中的话,必须使用switch_to进行指定
     5 bro.switch_to.frame('login_frame')
     6 bro.find_element_by_id('switcher_plogin').click()
     7 userName = bro.find_element_by_id('u')
     8 userName.send_keys('qq号')
     9 pwd = bro.find_element_by_id('p')
    10 pwd.send_keys('qq密码')
    11 time.sleep(2)
    12 btn = bro.find_element_by_id('login_button')
    13 btn.click()
    14 time.sleep(5)
    15 bro.quit()
    自动登录QQ空间
     1 #动态造作浏览器的滚动条获取豆瓣电影中更多的电影详情数据
     2 bro=webdriver.Chrome(executable_path=r'D:爬虫相关资料驱动程序chromedriver_win32chromedriver.exe')
     3 bro.get('https://movie.douban.com/typerank?type_name=%E5%96%9C%E5%89%A7&type=24&interval_id=100:90&action=')
     4 time.sleep(2)
     5 #获取页面的滚动条
     6 bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
     7 time.sleep(2)
     8 page_text=bro.page_source
     9 with open('./豆瓣.html','w',encoding='utf-8')as fp:
    10     fp.write(page_text)
    动态点击滚动条获取豆瓣电影数据
  • 相关阅读:
    BZOJ3543: [ONTAK2010]Garden
    python初识面向对象
    python装饰器
    python递归函数及二分法查找
    python内置函数及匿名函数
    生成器和生成器函数以及各种推导式
    第一类对象 函数名 变量名
    函数的进阶
    Python初始函数
    Python文件操作
  • 原文地址:https://www.cnblogs.com/duanhaoxin/p/10111002.html
Copyright © 2011-2022 走看看