python基于selenium+PhantomJS实现用提交表单,并点击按钮功能,获取返回的页面源码和ur等信息l。
2017-01-14 17:59
1336 查看
python做爬取页面功能的时候,会遇到有与网站交互操作的需求,例如要点击某个按钮,填写表单数据。下面用百度搜索作为一个简单的例子模拟实现。
代码很简单,12行左右。基于selenium+PhantomJS可以很简单地实现。
至于开发的环境:
环境是windows,python版本为3.5.2。selenium+PhantomJS搭建步骤参考:http://blog.csdn.net/u014175572/article/details/54427525
1、首先分析百度的页面
搜索框的id为kw;
‘百度一下’这个按钮的id为su
2、代码实现:
# coding:utf-8
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.baidu.com')
elem = driver.find_element_by_id('kw')
elem.send_keys(u'php')
# elem.send_keys(Keys.ENTER) #点击键盘上的Enter按钮
driver.find_element_by_id('su').click() # 点击了百度页面上的‘百度一下’按钮
driver.refresh()
print('页面标题:', driver.title) # 页面标题
print(driver.current_url) # 当前页面url
print('搜索后的页面源码:\n', driver.page_source) # 页面源码
3、显示的结果:
页面标题: php_百度搜索 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=php&rsv_pq=90054d840002556e&rsv_t=24b3LfXTDZDfLDXd%2Bz5lwEeOb0bngjPMJwhotOe2fMN6iYGUysoGTfPf0hM&rqlang=cn&rsv_enter=0&rsv_sug3=3&inputT=64&rsv_sug4=64 搜索后的页面源码:
.....................................
4、说明
elem = driver.find_element_by_id('kw')
elem.send_keys(u'php')
相当于在模拟浏览器在百度的首页搜索框中填入了'php'
driver.find_element_by_id('su').click()
相当于点击了百度页面上的‘百度一下’按钮
获取的源码即输入'php'再点击'百度一下'后的源码。
此刻在浏览器中输入:
右键查看页面源码,也与driver.page_source的输出结果一致。
代码很简单,12行左右。基于selenium+PhantomJS可以很简单地实现。
至于开发的环境:
环境是windows,python版本为3.5.2。selenium+PhantomJS搭建步骤参考:http://blog.csdn.net/u014175572/article/details/54427525
1、首先分析百度的页面
搜索框的id为kw;
‘百度一下’这个按钮的id为su
2、代码实现:
# coding:utf-8
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('https://www.baidu.com')
elem = driver.find_element_by_id('kw')
elem.send_keys(u'php')
# elem.send_keys(Keys.ENTER) #点击键盘上的Enter按钮
driver.find_element_by_id('su').click() # 点击了百度页面上的‘百度一下’按钮
driver.refresh()
print('页面标题:', driver.title) # 页面标题
print(driver.current_url) # 当前页面url
print('搜索后的页面源码:\n', driver.page_source) # 页面源码
3、显示的结果:
页面标题: php_百度搜索 https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=php&rsv_pq=90054d840002556e&rsv_t=24b3LfXTDZDfLDXd%2Bz5lwEeOb0bngjPMJwhotOe2fMN6iYGUysoGTfPf0hM&rqlang=cn&rsv_enter=0&rsv_sug3=3&inputT=64&rsv_sug4=64 搜索后的页面源码:
.....................................
4、说明
elem = driver.find_element_by_id('kw')
elem.send_keys(u'php')
相当于在模拟浏览器在百度的首页搜索框中填入了'php'
driver.find_element_by_id('su').click()
相当于点击了百度页面上的‘百度一下’按钮
获取的源码即输入'php'再点击'百度一下'后的源码。
此刻在浏览器中输入:
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=php&rsv_pq=d44ba44100045150&rsv_t=af41NtOm9qbMEWoyIhxK0UX1lw%2BVW0juT%2FvmokhEVFKq3JCC%2FTx2nIsE2cI&rqlang=cn&rsv_enter=0&rsv_sug3=3&inputT=73&rsv_sug4=73得到结果如下,也就是直接用浏览器输入php,再点击‘百度一下’的结果。
右键查看页面源码,也与driver.page_source的输出结果一致。
相关文章推荐
- Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
- 基于Python,Selenium和PhantomJS实现动态页面爬取
- 【web布局】点击按钮返回页面顶部的功能实现
- Python+Selenium 自动化实现实例-获取页面元素信息
- CSS样式控制实现IE提交表单记录历史点击返回信息仍在
- 表单提交到下一个页面后,再点击IE上的后退,如何能让表单内容再次显示出来?(以及当前页禁止IE返回按钮js)
- Python3.x实现网页登录表单提交功能
- android-基于Webservice实现天气信息获取及源码下载(三)
- JSP页面多次提交时(后台对表单有校验功能 )提示信息重复出现解决办法
- Python3.x实现网页登录表单提交功能
- js实现不提交表单获取单选按钮值的方法
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
- jquery实现checkbox全选功能,第二次点击【全选】按钮,页面无法勾选
- 同一个页面内实现html+js表单提交输出功能
- Javascript: 当点击submit提交按钮时将文本框中的信息添加到下面得表单中
- asp.net 中点击按钮弹出模式对话框,选择值后返回到页面中(window.showModalDialog实现)
- IE提交表单记录历史,点击返回信息仍在。
- 表单中有多个提交按钮,想实现点击不同的按钮,实现不同的操作
- android-基于Webservice实现天气信息获取及源码下载(一)
- 页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新