分享

python基于selenium+PhantomJS实现用提交表单,并点击按钮功能,获取返回的页面源码和ur等信息l。

 LibraryPKU 2019-06-13


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'再点击'百度一下'后的源码。

此刻在浏览器中输入:

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的输出结果一致。
---------------------
作者:天南韩立
来源:CSDN
原文:https://blog.csdn.net/u014175572/article/details/54427854
版权声明:本文为博主原创文章,转载请附上博文链接!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多