单页网站设计欣赏,网站建设服务定制,邵阳高端网站建设,张家港做企业网站缘由#xff1a;当时在windows 上运行chrom 的时候 发现要找到 浏览器和 webdirver 相匹配的 版本比较麻烦#xff0c;当时搞了大半天才找到并安装好。
这次在ubuntu上尝试用firefox 实现爬虫 文章分为三个部分#xff1a;
环境搭建浏览器弹窗输入用户名#xff0c;密码的…缘由当时在windows 上运行chrom 的时候 发现要找到 浏览器和 webdirver 相匹配的 版本比较麻烦当时搞了大半天才找到并安装好。
这次在ubuntu上尝试用firefox 实现爬虫 文章分为三个部分
环境搭建浏览器弹窗输入用户名密码的解决方法web 页面元素的获取
1.环境搭建 1安装firefox 浏览器
apt-get install firefox2安装 python 相关apt-get install python3.8
apt-get install python3-pip
python3 -m pip install selenium3将github 上的geckdirver 下载下来 放到 Ubuntu目录下待用github 地址https://github.com/mozilla/geckodriver/releasestar -zxvf geckodriver-v0.33.0-linux-aarch64.tar.gzmv geckodriver /usr/local/share/ln -s /usr/local/share/geckodriver /usr/local/bin/geckodriverln -s /usr/local/share/geckodriver /usr/bin/geckodriver4). 编写测试文件
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support.select import Select
from selenium.webdriver.firefox.options import Options
import os
import timeoptions Options()
options.add_argument(-headless) # 无头参数
browser webdriver.Firefox(optionsoptions)
browser.get(https://blog.csdn.net)
print(browser.title)
browser.close()测试过程中可能会遇到相关软件的版本不匹配网上搜搜都会有解决方法我也是边搜边解决具体解决问题忘记而且每个人的情况有差异
二. 浏览器弹窗输入用户名密码的解决方法 有些web程序使用浏览器自带的弹窗让用户填写用户名密码来实现登录但是对于爬虫来说我们定位不到元素所以也就无法输入用户名密码解决方法如下 url http://用户密码登录ip端口 没有端口的不用填 例 url ‘http://admin:12345192.168.1.254’ browser.get(url) 这样就可以正常登录了
三. 页面元素获取
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
from selenium.webdriver.support.select import Select
from selenium.webdriver.firefox.options import Options
import os
import timeurl http://admin:12345192.168.1.254# 登录路由器管理页面
def login():global browser,url,name,passwdtry:# 实例化一个浏览器对象传入浏览器的驱动程序options Options()options.add_argument(-headless) # 无头参数browser webdriver.Firefox(optionsoptions)browser.get(url)time.sleep(3)print(browser.title)iframe_sub0 browser.find_elements(By.XPATH, /html/frameset/frame[1]) #print(len(iframe_sub0))browser.switch_to.frame(iframe_sub0[0])browser.find_elements(By.XPATH,//*[idmynav7]/span)[0].click()time.sleep(1)browser.switch_to.parent_frame()iframe_sub1 browser.find_elements(By.XPATH, /html/frameset/frame[2])#print(len(iframe_sub1))browser.switch_to.frame(iframe_sub1[0])time.sleep(1)iframe_sub2 browser.find_elements(By.XPATH, /html/body/div/iframe)#print(len(iframe_sub2))browser.switch_to.frame(iframe_sub2[0])time.sleep(1)net_info browser.find_elements(By.XPATH, /html/body/pre)#print(len(net_info)) print(net_info[0].text) return 0except Exception as e:print(e)print(登录失败请检查用户名或者密码是否正确 )return 1
if __name____main__:login()