Selenium+phanmJs 操作浏览器 爬取数据

本文详细介绍了Selenium库的使用方法,包括环境搭建、基本操作流程及如何利用Selenium进行网页自动化测试,如自动填写表单、点击按钮等。同时,还提供了基于PhantomJS和Chrome浏览器的代码示例。
摘要由CSDN通过智能技术生成

什么是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_win32\chromedriver.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-windows\bin\phantomjs.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_win32\chromedriver.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_win32\chromedriver.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)
动态点击滚动条获取豆瓣电影数据

 

转载于:https://www.cnblogs.com/duanhaoxin/p/10111002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值