多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Python Selenium爬取数据-自动化测试

更新时间:2022-04-20 09:12:05 作者:多测师 浏览:147

  最近公司有一项爬取数据的工作,借鉴以往的代码将爬虫重新更新并整理,将现有爬虫分成以下几部分:

Python Selenium爬取数据-自动化测试

  0.文件读取器

  其实文件读取和4中的文件存储是在一个部分的

  这里简单介绍下xls的读取

  def deal_xls_col(name,sheet_name):

  body = xlrd.open_workbook(name)

  try:

  sh = body.sheet_by_name(sheet_name)

  except:

  print "EORR"

  return sh.col_values(0)格式请忽略

  这里读取了一竖行的xls的数据

  返回的格式为list

  1.总调度器

  这里主要是写逻辑,及0234的顺序。

  2.网页下载器

  网页下载器主要是来模拟浏览器访问对应url

  一个简单的例子

  class HtmlDownloader(object):

  def download(self,url):

  if url is None:

  return None

  response = urllib2.urlopen(url,timeout=300)

  if response.getcode() != 200:

  return None

  return response.read()

  例子只是去访问url并没有对cookie等相关限制信息做处理(需要请自行添加)

  3.网页分析器

  网页分析器其实就是来处理下载器返回的html的源码,比如用selenium来处理的话则有

  company_info_text = driver.find_element_by_class_name('company_info_text')

  company_text = driver.find_element_by_class_name('row b-c-white company-content')

  就是用selenium的一些方法来获取你需要的数据而已

  4.文件存储器

  这里以xls为例:

  def creat_xls_6(xls_name):

  styleBoldRed = xlwt.easyxf('font:color-index red, bold on')

  headerStye = styleBoldRed wb = xlwt.Workbook()

  ws = wb.add_sheet(xls_name)

  ws.write(0, 0, "name", headerStye)

  ws.write(0, 1, "oper_name", headerStye)

  ws.write(0, 2, "start_date", headerStye)

  ws.write(0, 3, "xfsSearchStatus", headerStye)

  wb.save(xls_name)

  创建xls表格

  def insert_xls_6(xls_name,id, name, oper_name, start_date,xfsSearchStatus):

  oldWb = xlrd.open_workbook(xls_name)

  newWb = copy(oldWb)

  newWs = newWb.get_sheet(0)

  newWs.write(id, 0, name)

  newWs.write(id, 1, oper_name)

  newWs.write(id, 2, start_date)

  newWs.write(id, 3, xfsSearchStatus)

  newWb.save(xls_name)

  插入数据到表格

  这里面没有什么高深的秘密,只要你封装好自己的函数就好了

  上面的例子还不是最好的版本,因为每次使用都要重新修改,应该传入一个数据来代替那些变量,这样就可以适配各种数据的表格创建和添加了

  还有要说的就是:一些网站会限制你爬取数据,但是大多数网站都是友好的,但是这并不表示你可以肆无忌惮的毫无限制的去爬取。爬取的时间最好设置成晚上。还有就是不要对目标网站造成不必要的‘伤害’。爬虫并不难,且行且珍惜!

  以上内容为大家介绍了自动化测试中的Python Selenium爬取数据,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部