python使用selenium爬取戴尔官网驱动:获取遍历各驱动的下载网址然后wget命令试验下载


我们选择戴尔官网产品的一服务器某型号进行爬虫测试
进入开发这模式看到驱动下载链接都藏在table表格中,因为我们需要遍历当前页面所有驱动下载链接,所以首先搞清楚当前页面共有多少驱动需要爬取。
如何获取他的个数呢?
我尝试了几种方式失败了,最后决定根据戴尔页面的特点,“因地制宜”他的产品都放在表格中,因此我们可以通过获取此页面的table共有多少行tr就可以得到接近正确值,由于将导航栏的标题算进去,所以得到的行数需要减去一,就能得到正确的数目。

通过下面的代码,可以获取到当前页面Table中共有多少行,试验所爬取的网址:戴尔试验爬取驱动网址

# 定位到table,并获得table中所有得tr元素
table = driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div[2]/div[7]/div/div[2]/div/section[1]/div/div""[6]/div[1]/table")rows = table.find_elements_by_tag_name('tr')# python 得len()函数返回行数numbers = len(rows)-1 #我们需要的是包含产品的行数,所以将导航栏一行减去。
print(numbers)

然后我们就可以尝试爬取页面内驱动的下载网址:

from selenium import webdriver
import timedriver =webdriver.Chrome()
# driver.maximize_window()
driver.get('https://www.dell.com/support/home/cn/zh/cnbsd1/product-support/product/poweredge-r420/drivers')
button = driver.find_elements_by_xpath('//*[@id="paginationRow"]')
driver.execute_script("$(arguments[0]).click()", button)
time.sleep(10)table = driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div[2]/div[7]/div/div[2]/div/section[1]/div/div""[6]/div[1]/table")
rows = table.find_elements_by_tag_name('tr')
numbers = len(rows)-1
print(numbers)i = 0
while(i < numbers):for link in driver.find_elements_by_xpath('/html/body/div[1]/div/div[5]/div[2]/div[7]/div/div[2]/div/section[1]/div/''div[6]/div[1]/table/tbody/tr['+str(i+1)+']/td[5]/a[1]'):print(link.get_attribute("href"))i += 1
print "complete!"
driver.close()


可以看出,页面内全部驱动下载地址都已成功爬取下来,接下载是要下载,在爬取到网址后加一简单的wget命令即可进行下载。

from selenium import webdriver
import time
import wgetdriver =webdriver.Chrome()
# driver.maximize_window()
driver.get('https://www.dell.com/support/home/cn/zh/cnbsd1/product-support/product/poweredge-r420/drivers')
button = driver.find_elements_by_xpath('//*[@id="paginationRow"]')
driver.execute_script("$(arguments[0]).click()", button)
time.sleep(10)table = driver.find_element_by_xpath("/html/body/div[1]/div/div[5]/div[2]/div[7]/div/div[2]/div/section[1]/div/div""[6]/div[1]/table")
rows = table.find_elements_by_tag_name('tr')
numbers = len(rows)-1
print(numbers)i = 0
while(i < numbers):for link in driver.find_elements_by_xpath('/html/body/div[1]/div/div[5]/div[2]/div[7]/div/div[2]/div/section[1]/div/''div[6]/div[1]/table/tbody/tr['+str(i+1)+']/td[5]/a[1]'):print(link.get_attribute("href"))wget.download(link.get_attribute("href"))i += 1
print "complete!"
driver.close()

python使用selenium爬取dell官网驱动(一):获取遍历各驱动的下载网址相关推荐

  1. python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址

    python使用selenium爬取联想官网驱动(一):获取遍历各驱动的下载网址然后wget命令试验下载 由于初期学习,所以先拿一个型号的产品驱动试验. (1)以下为在联想某型号产品获取相关驱动下载的 ...

  2. 爬虫实战(二)—利用requests、selenium爬取王者官网、王者营地APP数据及pymongo详解

    概述 可关注微信订阅号 loak 查看实际效果. 代码已托管github,地址为:https://github.com/luozhengszj/LOLGokSpider ,包括了项目的所有代码. 本文 ...

  3. Python re库爬取阴阳师官网高清壁纸

    壁纸官方网址: https://yys.163.com/media/picture.html 导库 import requests import re from urllib import error ...

  4. 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件

    转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...

  5. python爬取千图网_python爬取lol官网英雄图片代码

    python爬取lol官网英雄图片代码可以帮助用户对英雄联盟官网平台的皮肤图片进行抓取,有很多喜欢lol的玩家们想要官方的英雄图片当作自己的背景或者头像,可以使用这款软件为你爬取图片资源,操作很简单, ...

  6. python selenium爬取去哪儿网的酒店信息——详细步骤及代码实现

    目录 准备工作 一.webdriver部分 二.定位到新页面 三.提取酒店信息 ??这里要注意?? 四.输出结果 五.全部代码 准备工作 1.pip install selenium 2.配置浏览器驱 ...

  7. python爬虫入门练习,使用正则表达式和requests爬取LOL官网皮肤

    刚刚python入门,学会了requests模块爬取简单网页,然后写了个爬取LOL官网皮肤的爬虫,代码奉上 #获取json文件 #获取英雄ID列表 #拼接URL #下载皮肤 #导入re request ...

  8. python selenium 爬取去哪儿网的数据

    python selenium 爬取去哪儿网的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/selenium+qu ...

  9. python+selenium爬取链家网房源信息并保存至csv

    python+selenium爬取链家网房源信息并保存至csv 抓取的信息有:房源', '详细信息', '价格','楼层', '有无电梯 import csv from selenium import ...

  10. python爬取酒店信息_python selenium爬取去哪儿网的酒店信息(详细步骤及代码实现)...

    准备工作 1.pip install selenium 2.配置浏览器驱动.配置其环境变量 Selenium3.x调用浏览器必须有一个webdriver驱动文件 Chrome驱动文件下载chromed ...

最新文章

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...
  2. c3p0数据库连接池+mysql数据库基本使用方法
  3. bzoj1951 组合数取模 中国剩余定理
  4. Kinect v2.0 for windows开发环境说明
  5. 三维空间长度温度数量_风电叶片模具水循环温度控制机及其智能化控制解析
  6. 初级中级高级_初级职位,(半)高级职位
  7. android 沉浸栏灰色,Android 沉浸栏实践——踩坑
  8. java欧冠抽签,欧冠抽签吐槽:最大的“礼包”被C罗拿走!梅西出局概率超50%?...
  9. Java 主流垃圾收集器
  10. 虚幻4属性系统(反射)翻译
  11. iphone分辨率_AppStore今日推荐 iphone放大分辨率减少白噪点的照片处理工具
  12. weblogic部署启动时报错(weblogic.application.ModuleException)
  13. 【每日算法Day 65】你能顺利救出地下城里的公主吗?
  14. 178. Rank Scores
  15. LeetCode_88、合并两个数组(python)
  16. 多小区下小区上行速率的计算(4)
  17. ssm生鲜超市管理系统的设计与实现毕业设计源码261635
  18. 如何保证缓存一致性?
  19. 产品经理小技术:图片素材随手找,原型设计快又好
  20. IDEA 新UI使用

热门文章

  1. 接受自己平庸真的很难吗?你知道163邮箱登陆界面是什么吗?
  2. 微商如何利用微信公众号来盈利
  3. Mac python 安装信息安全,Pycrypto 出现,C compiler cannot create executablesC编辑器不能创建可执行文件
  4. Gate.io 土耳其社区与 Casper AMA圆满完成,共话Casper未来发展
  5. Chromium网页CPU光栅化原理分析
  6. 2021年全新UI界面1:1仿皮皮虾APP段子
  7. Navcat无法连接mysql报错1449
  8. 微信小程序通过”链接/文字/数字等等“生成二维码
  9. MacOS技巧|Mac如何自定义触控栏Touch Bar?显示Touch Bar教程
  10. QT中的explicit关键字的意思