Python | 您所在的位置:网站首页 › 京东自动登录系统关闭 › Python |
近段时间,因熊孩子沉迷于电视而致命学习成绩下降,遂有了在不影响家里老人正常观看电视的情况下对电视进行限制的需求,经过思索后准备利用爬虫技术来实现,即在熊孩子放学时自动登录网管交换机来对机顶盒进行限速,熊孩子上学后再解除针对机顶盒的限速。` 现在的熊孩子岁数不大却非常聪明,可以自己开电视并换台寻找喜爱的电视节目,之前采用拨网线的暴力方法来禁止熊孩子无休止的观看电视,后因经常拨网线后忘了重新插上而导致老人无法看电视,遂此方法被废弃……… 好在经过思索,发现家里的 IPTV 连在了 Netgear 网管交换机上,我们可以在交换机上对 IPTV 端口进行限速,以使电视无法正常观看。 说起爬虫,首先想到的就是 Python,经过一翻google,确定了使用Selenium、Firefox/Chrome来实现爬虫功能。 什么是SeleniumGithub-Selenium Selenium 是一个用于 Web 应用程序的测试工具。Selenium 直接调用浏览器来进行测试,就像真正的用户在操作一样。它支持 IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,HtmlUnit,phantomjs,Android(需安装 Selendroid 或 appium),IOS(需安装ios-driver 或 appium)等。 Selenium 支持 C# / JavaScript / Java / Python / Ruby 开发语言。它使用 WebDriver 来操作浏览器进行网页测试。 在爬虫中 Selenium 主要用来解决 JavaScript 的渲染问题。 什么是 WebDriverWebdriver 是一个用来和浏览器进行交互的编程接口,通过它可以操作浏览器打开或关闭、发送鼠标点击、模拟键盘输入等等。 W3C 定义了 WebDriver 规范。现在最流行的 WebDrver 为开源软件 Selenium WebDriver。 WebDriver 包含多个模块: 支持多编程语言 自动化框架,提供网页的元素查找、点击、输入等自动化功能,减少重复编码。 JSON 协议,自动化框架与浏览器驱动的中间层,它提供了跨平台跨语言的能力。 浏览器驱动,通过它来调用浏览器。 浏览器,对网页进行渲染。 安装 Selenium :~$ apt-get install python3 python3-pip :~$ pip3 install selenium WebDriver ChromeDriver :`$ apt-get install chromium-driver Firefox 的 Webdriver 名为Geckodriver,自github-geckodriver下载。 :~$ wget https://github.com/mozilla/geckodriver/releases/download/v0.26.0/geckodriver-v0.26.0-linux64.tar.gz :~$ tar -xvf geckodriver-v0.26.0-linux64.tar.gz :~$ mv geckodriver /usr/local/bin/ Selenium 的使用方法这里我们使用 Python 语言。 浏览网页先来一段爬虫界的Hello World。 #!/usr/bin/env python3 # coding=utf-8 import time from selenium import webdriver print("初始化 ChromeDriver,并打开 Chrome") driver = webdriver.Chrome() print("打开 shixuen.com 网址") driver.get("https://www.shixuen.com") time.sleep(5) print("关闭浏览器") driver.close() print("初始化 geckodriver 并打开 Firefox 浏览器") driver = webdriver.Firefox() driver.get("https://www.shixuen.com") time.sleep(5) driver.close() 声明浏览器 from selenium import webdriver driver = webdriver.Chrome() driver = webdriver.Firefox()2. 使用driver.get( "https://www.shixuen.com" )来打开网站 3. 关闭浏览器,driver.close()。 模拟鼠标点击我们再添加点新功能,打开https://www.shixuen.com后,点击文章VIM Plugin - YouCompleteMe。 依旧先看代码 #!/usr/bin/env python3 # coding=utf-8 import time from selenium import webdriver print("初始化 ChromeDriver,并打开 Chrome") driver = webdriver.Chrome() print("打开 shixuen.com 网址") driver.get("https://www.shixuen.com") print("搜索指定文本的链接") article = driver.find_element_by_link_text("VIM Plugin - YouCompleteMe") print("点击此链接") article.click() time.sleep(5) print("关闭浏览器") driver.close()关键代码为driver.find_element_by_link_text( "VIM Plugin - YouCompleteMe" ),搜索文字内容为VIM Plugin - YouCompleteMe的链接,找到后返回此节点的对象。 搜索指定元素如网页节点的代码: Apply 以 ID进行搜索,driver.find_element_by_id( "btn_apply" ) 以链接的文本内容进行搜索,driver.find_element_by_link_text( "Apply" ) 以class进行搜索,driver.find_element_by_class_name( "btn_class" ) 以xpath进行搜索,driver.find_element_by_xpath( "//a[@id='btn_apply' and @class='btn_class']" ) /:从根节点开始进行搜索 //:搜索所有节点 ./:搜索本节点下的子节点 点击此节点代码 article.click() 来执行鼠标点击操作。 查找网页节点代码的方法 首先使用浏览器打开页面 按[F12]调出开发者工具 点击工具左上角的按钮对元素进行定位上面的代码算是爬虫界的Hello World吧。 登录并配置 Netgear 网管交换机下面,进入本文的正题,登录并配置 Netgear 网管交换机。依旧不废话,先上代码。 |
CopyRight 2018-2019 实验室设备网 版权所有 |