R爬虫之上市公司公告批量下载

优采云 发布时间: 2020-06-03 08:01

  

  2017-4-13 17:46|发布者: 炼数成金_小数|查看: 22744|评论: 1|原作者: 黄耀鹏|来自: R语言英文社区

  摘要: Selenium是一个用于测试网页应用的开源软件。它提供了浏览器中的点击,滚动,滑动,及文字输入等驱动程序。这样,利用Selenium即可以通过脚本程序来代替人工进行测试一个开发软件的各类功能。在处理爬虫任务中,经常 ...

  tm

  Python

  测试

  案例

  开源软件

  函数

  selenium的安装及使用介绍

  Selenium是一个用于测试网页应用的开源软件。它提供了浏览器中的点击r软件爬虫,滚动,滑动r软件爬虫,及文字输入等驱动程序。这样,利用Selenium即可以通过脚本程序来代替人工进行测试一个开发软件的各类功能。

  在处理爬虫任务中,经常碰到须要输入文字,进行下拉菜单选择,以及滑鼠点击等情境。这个时侯,selenium就派上大用场了。

  下面,我们先介绍一下Selenium的使用环境配置,接着介绍怎样通过R的拓展包Rwebdriver来使用Selenium,最后,展示一个爬虫案例应用。

  安装配置

  安装jre:

  下载地址:#win

  配置jre环境变量

  下载selenium,并放至指定位置

  下载地址:

  启动selenium

  打开命令提示符

  进入selenium所在路径

  启动selenium

  cd "C:\Program Files (x86)\Rwebdriver"

  java -jar selenium-server-standalone-2.49.0.jar

  ### selenium接口函数介绍

  『Automated Data Collection with R』一书的作者开发了R包Rwebdriver,用于联接启用selenium。

  该R包重要的函数如下:

  

  更多细节请参考:

  -『Automated Data Collection with R』第9章P253-P259

  Selenium with Python

  网页开发工具的使用介绍

  (手动演示)

  

  XML提取器相关函数的使用

  xpathSApply(doc,path,fun = NULL)

  可传入的fun如下:

  

  案例演示——爬取上海证券交易所上市公司公告信息

  #### packages we need ####

  ## ----------------------------------------------------------------------- ##

  require(stringr)

  require(XML)

  require(RCurl)

  library(Rwebdriver)

  # set path

  setwd("ListedCompanyAnnouncement")

  # base url

  BaseUrl<-"http://www.sse.com.cn/disclosure/listedinfo/announcement/"

  #start a session

  quit_session()

  start_session(root = "http://localhost:4444/wd/hub/",browser = "firefox")

  # post Base Url

  post.url(url = BaseUrl)

  # get xpath

  StockCodeField<-element_xpath_find(value = '//*[@id="inputCode"]')

  ClassificationField<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/button')

  StartDateField<-element_xpath_find(value = '//*[@id="start_date"]')

  EndDateField<-element_xpath_find(value = '//*[@id="end_date"]')

  SearchField<-element_xpath_find(value = '//*[@id="btnQuery"]')

  # fill stock code

  StockCode<-"600000"

  element_click(StockCodeField)

  keys(StockCode)

  Sys.sleep(2)

  #fill classification field

  element_click(ClassificationField)

  # get announcement xpath

  RegularAnnouncement<-element_xpath_find(value = '/html/body/div[7]/div[2]/div[2]/div[2]/div/div/div/div/div[2]/div[1]/div[3]/div/div/ul/li[2]')

  Sys.sleep(2)

  element_click(RegularAnnouncement)

  # #fill start and end date

  # element_click(StartDateField)

  # today's xpath

  EndToday<-element_xpath_find(value = '/html/body/div[13]/div[3]/table/tfoot/tr/th')

  Sys.sleep(2)

  element_click(EndDateField)

  Sys.sleep(2)

  element_click(EndToday)

  #click search

  element_click(SearchField)

  ###################################

  ####获得所有文件的link ##

  all_links<-character()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线