python控制网页成功经验

webbrowser只能整体操作网页,没法像selenium那样每个网页元素都可以操控,webbrowser有三种用法:
webbrowser.open 在当前打开
webbrowser.open_new_tab 打开新的标签页
webbrowser.open_window 打开新的窗口
第一个不好用,树莓派上的chrome浏览器操控时,跟第二个功能竟然一样,每次打开都要重开一次标签。
用法如下:
import webbrowser
webbrowser.open(“http://www.baidu.com”)

还是换成selenium比较好,里面的get方法也一样是打开网页,但一次打开即可,其它的用find_element_by_id等方法操作当前页面即可。用法如下:

  1. 下载Chrome驱动:
    链接:https://pan.baidu.com/s/1NFPXEJHYXMMGrlbL4rIwUw
    提取码:1234

  2. pip install selenium
    然后就可以用了。

例子如下:
#coding:utf-8
from selenium import webdriver
import time
token = ‘xxxxxxxx’ #登陆用的,意思一下,这里真实的token号码用xxxxxx隐去
driver = webdriver.Chrome(’/usr/lib/chromium-browser/chromedriver’)
url=‘http://www.dagoovis.com:8000/workbench/69?token=’+token #不登陆的话,不用url中间变量也行的,可以用下句类似百度网页直接输入即可。
#driver.get(‘https://www.baidu.com/’)
driver.get(url)
#driver.maximize_window()
time.sleep(2)
#driver.find_element_by_xpath("./*//input[@value=‘百度一下’]").click()
driver.find_element_by_id(‘voice_export’).click() #voice_export是此网页上导出按钮的ID
#driver.find_element_by_name(‘wd’).send_keys(‘Dagoo’) # 按name查找.传字符串
#driver.find_element_by_id(‘su’).click() # 按id查找.单击
time.sleep(2)
driver.find_element_by_id(‘voice_download’).click() #voice_download是此网页上导出按钮的ID

python控制网页成功经验
以上例子在树莓派3.0B上运行成功之前,也就是在我刚装了Chrome驱动和selenium插件之后,原来用好好的用的webbrowser的例子崩溃了,
python控制网页成功经验

python控制网页成功经验

弹出来:urllib3…ImportError: No module named ordered_dict

估计是这两个东西自动更新了我原有的包,导致版本错误了。重新装一下urllib3解决问题:
pip install urllib3==1.22

我的以上句子就解决了问题,网上说如果以上句子引起以下错误:
ERROR: Cannot uninstall ‘urllib3’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
那么用下句写法安装可解决问题:
sudo pip install --ignore-installed urllib3==1.22

或者干脆卸载掉重新安装,如下:
pip uninstall urllib3
然后输入:
pip install urllib3==1.22