爬起来的爬,爬起来的动作

  爬起来的爬,爬起来的动作

  你的网络爬虫会动吗?如何可视化爬虫?今天,我们将使用Selenium(自动化测试框架)和ChromeDriver(浏览器驱动程序)来让您的爬虫移动!

  硒

  Selenium是一个测试Web应用程序的工具,它可以让基于它编写的程序在浏览器中运行,就像真实用户一样。

  其本质是驱动浏览器,完全模拟浏览器的操作,如跳转、输入、点击、下拉等。以获得网页渲染后的结果。

  支持的浏览器有IE(7、8、9、10、11)、Mozilla Firefox、Safari、Google Chrome、Opera、Edge等。支持自动记录动作和自动生成不同语言的测试脚本,例如。NET,Perl,Python,Ruby和Java。

  Selenium不是一个单一的工具,而是帮助测试人员更有效地自动化基于Web的应用程序的一组工具。

  2

  chrome驱动器

  Selenium是一个开源工具,用于在许多浏览器上自动测试webapps。它提供网页导航、用户输入、JavaScript执行和其他功能。

  ChromeDriver是一个独立的服务,它为Chromium实现了Selenium的JsonWireProtocol。

  目前W3C标准正在实施并转向。ChromeDriver适用于Android版Chrome和桌面版Chrome(Mac、Linux、Windows和ChromeOS)。

  ChromeDriver是google为网站开发者提供的自动化测试接口,是selenium和Chrome浏览器之间的桥梁。

  官方网站地址:https://sites.google.com/a/chromium.org/chromedriver/

  三

  爬行动物

  我们访问百度输入关键词“东京奥运会”,爬上了目前奥运奖牌前五的数据。

  首先,加载浏览器驱动程序。这里我用的是下载的Chrome驱动。

  从selenium导入web驱动程序

  #加载本地chrome驱动程序

  driver=webdriver。chrome(executable _ path= E:\ \ workspace \ \ Project \ \ script \ \ chrome driver . exe )

  访问百度,输入关键词进行搜索。

  driver . get( https://www . Baidu . com/)

  #获取输入框

  kw=driver . find _ element _ by _ id(“kw”)

  Kw.send_keys(东京奥运会)

  #点击搜索

  su=driver . find _ element _ by _ id( su )

  su.click()

  #隐式等待1秒钟以适应ajax异步响应

  driver . implicit _ wait(1)

  根据html的结构特点,可以通过定位Xpath和元素选择器来抓取数据。

  #查找要爬网的内容。

  ul=driver . find _ element _ by _ XPath(

  //*[@ id= 1 ]/div/div[3]/div/div[2]/div[3]/div/div[2]/div/div[2]/div )。按标签名查找元素( ul )

  lis=ul . find _ elements _ by _ tag _ name( Li )

  结果=[]

  对于范围内的I(0,len(lis)):

  信息={}

  如果i==0:

  继续

  信息[国家]=列表[i]。find _ element _ by _ class _ name( tab-item-place _ 2 obgx )\。find_element_by_tag_name(span )。文本

  info[gold]=lis[i]。find _ elements _ by _ class _ name( tab-item-medal _ rkzt 4 )[0]。文本

  info[silver]=lis[i]。find _ elements _ by _ class _ name( tab-item-medal _ rkzt 4 )[1]。文本

  info[青铜]=lis[i]。find _ elements _ by _ class _ name( tab-item-medal _ rkzt 4 )[2]。文本

  info[total]=lis[i]。find _ element _ by _ class _ name( tab-item-sum _ 36 ahl )。文本

  info[url]=lis[i]。find _ element _ by _ class _ name( tab-item-link _ 1 hozg )。get_attribute(href )

  result.append(info)

  打印结果并关闭浏览器。

  对于结果中的项目:

  driver.get(项目[url])

  driver.back()

  打印(项目)

  #关闭驱动器

  driver.close()

  #关闭浏览器

  driver.quit()

  操作效果:

  目标

  作者:李,在读计算机科学硕士。

  关注我,一起学习,一起成长。

  原创作品来自李哥技术笔记,

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: