爬取浙江省律师综合管理平台上的律师事务所+律师基本信息,截止2018-08-06依然有效,直接运行即可

library("RCurl")
library("XML")
library("dplyr")#律师事务所信息爬取
request_url<-"http://lsgl.zjsft.gov.cn/zjlawyermanager/view/lawyers/LawyerOfficePageList/execute/lawofficeList.do"
Host_url<-"http://lsgl.zjsft.gov.cn"
request_headers<-c(
"Accept"="text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Language"="zh-CN,zh;q=0.9",
"Connection"="keep-alive",
"Origin"="http://lsgl.zjsft.gov.cn",
"Referer"="http://lsgl.zjsft.gov.cn/zjlawyermanager/view/lawyers/LawyerOfficePageList/execute/lawofficeList.do",
"User-Agent"="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36"
)#收集调试信息
d<-debugGatherer()
#构造curl句柄收集登陆信息,并开启cookiefile管理器
chandle<-getCurlHandle(debugfunction=d$update,followlocation=TRUE,cookiefile="",verbose=TRUE)
#构造表单体
payload<-c(pageNo=1)
#先POST请求一次登陆地址,保存cookie
tmp<-postForm(request_url,httpheader=request_headers,.params=payload,style="POST",curl=chandle,.encoding="utf-8")
rm(tmp)href_huizong<-data.frame()
for (i in 1:100) {
payload["pageNo"]=i
tmp<-postForm(request_url,httpheader=request_headers,.params=payload,style="POST",curl=chandle,.encoding="utf-8")
rdhtml<-htmlParse(tmp)
rm(tmp)
rd<-getNodeSet(rdhtml,"/html/body/table[4]/tr/td/table/tr/td[2]/table[3]/tr[1]/td[2]/table[2]/tr//a[@href]")  #将tbody节点剔除
#提取href属性的值
href<-unlist(lapply(rd,xmlGetAttr,"href"))
href<-paste0(Host_url,href)
#提取属性对应的值
href_name<-unlist(lapply(rd,xmlValue))
rm(rd)
href_data_frame<-as.data.frame(cbind(href,href_name),stringsAsFactors=FALSE)
rm(href)
rm(href_name)
href_huizong<-rbind(href_huizong,href_data_frame)
rm(href_data_frame)
}###律师事务所的详细信息爬取
law_firm_huizong<-data.frame()
for (j in seq_along(href_huizong$href)) {
tmp<-getURL(href_huizong$href[j],httpheader=request_headers,curl=chandle,.encoding="utf-8")
rdhtml<-htmlParse(tmp)
rm(tmp)
HREF_NAME<-href_huizong$href_name[j]
rd<-getNodeSet(rdhtml,"/html/body/table[4]/tr/td/table/tr/td[2]/table[3]") %>% '[['(1) %>% readHTMLTable(,header=c("CLASS","NAME"),stringsAsFactors=FALSE)
tmp_huizong<-data.frame(HREF_NAME=HREF_NAME,CLASS=rd$CLASS,NAME=rd$NAME,stringsAsFactors=FALSE)
rm(rdhtml)
rm(HREF_NAME)
rm(rd)
law_firm_huizong<-rbind(law_firm_huizong,tmp_huizong)
rm(tmp_huizong)
}###对特殊字符进行处理
law_firm_huizong$NAME<-gsub("\u00A0\u00A0","、",law_firm_huizong$NAME)
law_firm_huizong$NAME<-gsub("[[:space:]]","",law_firm_huizong$NAME)
law_firm_huizong<-merge(law_firm_huizong,href_huizong,by.x = "HREF_NAME",by.y = "href_name",all.x = T)
###写回本地存储
write.table(law_firm_huizong,"law_firm_info.csv",append = F,col.names = T,row.names = F,sep=",")#爬取律师信息
request_headers["Referer"]<-"http://lsgl.zjsft.gov.cn/zjlawyermanager/view/lawyers/LawyerPageList/execute/lawyersList.do"
request_url<-"http://lsgl.zjsft.gov.cn/zjlawyermanager/view/lawyers/LawyerPageList/execute/lawyersList.do"
payload<-c(pageNo=1)
lawyer_huizong<-data.frame()
for (i in 1:1346) {
payload["pageNo"]=i
tmp<-postForm(request_url,httpheader=request_headers,.params=payload,style="POST",curl=chandle,.encoding="utf-8")
rdhtml<-htmlParse(tmp)
rm(tmp)
rd<-getNodeSet(rdhtml,"/html/body/table[4]/tr/td/table/tr/td[2]/table[3]/tr[1]/td[2]/table[2]/tr/td[1]/a[@href]")
rm(rdhtml)
href<-unlist(lapply(rd,xmlGetAttr,"href"))
href<-paste0(Host_url,href)
href_name<-unlist(lapply(rd,xmlValue))
rm(rd)
href_data_frame<-as.data.frame(cbind(href,href_name),stringsAsFactors=FALSE)
rm(href)
rm(href_name)
lawyer_huizong<-rbind(lawyer_huizong,href_data_frame)
rm(href_data_frame)
Sys.sleep(runif(1,0.5,1.5))
}#爬取律师详细信息
lawer_huizong<-data.frame()
for (j in seq_along(lawyer_huizong$href)) {
tmp<-getURL(lawyer_huizong$href[j],httpheader=request_headers,curl=chandle,.encoding="utf-8")
rdhtml<-htmlParse(tmp)
rm(tmp)
HREF_NAME<-lawyer_huizong$href_name[j]
rd<-getNodeSet(rdhtml,"/html/body/table[4]/tr/td/table/tr/td[2]/table[3]") %>% '[['(1) %>% readHTMLTable(,header=c("CLASS","NAME"),stringsAsFactors=FALSE)
tmp_huizong<-data.frame(HREF_NAME=HREF_NAME,CLASS=rd$CLASS,NAME=rd$NAME,stringsAsFactors=FALSE)
rm(rdhtml)
rm(HREF_NAME)
rm(rd)
lawer_huizong<-rbind(lawer_huizong,tmp_huizong)
rm(tmp_huizong)
Sys.sleep(runif(1,0.5,1.7))
}
write.table(lawer_huizong,"lawer_info.csv",append = F,col.names = T,row.names = F,sep=",")

案例-浙江省律师综合管理平台信息爬取相关推荐

  1. 中国基金业协会网站资产管理业务综合报送平台-数据爬取

    基金业协会网站里面,资管业务综合报送平台数据爬取 对于公开数据其实还是很好爬的,但是我司需要在登录机构账户之后,爬取自己公司的产品数据生成报表.这个时候鸡贼的基金业协会网站就很恶心了. 1. 先进行简 ...

  2. 亳州市消防支队乡镇(街道)消防工作站综合管理平台案例

    项目背景 Project Context 2018年10月,根据中共中央<深化党和国家机构改革方案>,国家综合性消防救援队伍成立,赋予了新的历史定位和职责使命.根据<消防救援队伍信息 ...

  3. 物联网的物流企业信息集成综合管理平台,主要有哪些特征?

    物联网的物流企业信息集成综合管理平台主要特征,具体如下: (1)多源物流业务数据采集.物流业务数据的多源异构表现为系统异构.模式异构.信息来源异构.数据分布异构和数据传输条件异构.通过物联网的感知技能 ...

  4. 医药行业信息综合管理平台

    医药行业信息综合管理平台 是由中科软科技股份有限公司自主研发的针对医药行业全业务流程的软件管理系统,其以业务流程为核心,涵盖了流向数据管理.客户关系管理.任务管理.办公管理等业务流程. 医药行业信息综 ...

  5. 计算机毕业设计ssm教师授课信息综合管理平台451gu系统+程序+源码+lw+远程部署

    计算机毕业设计ssm教师授课信息综合管理平台451gu系统+程序+源码+lw+远程部署 计算机毕业设计ssm教师授课信息综合管理平台451gu系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构 ...

  6. 一卡通综合管理平台中了后缀.[mr.hacker@tutanota.com]的勒索病毒加密的数据库怎么用达思SQL数据库修复软件完美修复?

    用达思SQL数据库修复软件怎么修复中了后缀.[mr.hacker@tutanota.com]的勒索病毒加密的数据库?(一卡通综合管理平台) 2.33GB的sql数据库被后缀.[mr.hacker@tu ...

  7. 智慧城市综合管理平台功能清单

    智慧城市综合管理平台功能清单 一.九大标准子系统 序号 子系统名称 功能模块备名称 备注 1 无线数据采集子系统 用户管理 用户的权限.角色进行分配和设置.能进行方便而实用的登录和退出操作 考勤管理 ...

  8. 一卡通综合管理平台中了后缀.[mr.hacker@tutanota.com]勒索病毒数据库能修复吗

    2.33GB的sql数据库被后缀.[mr.hacker@tutanota.com]加密 最近几天有一个一卡通综合管理平台的数据库被勒索病毒加密了,因为整个服务器只有sql数据库是重要的,而且客户拒绝向 ...

  9. 顺义教委携手华平共建视频图像综合管理平台

    随着经济的发展和社会的进步,北京顺义区的教育也迈上了新的台阶.据初步统计,目前全区有中小学.幼儿园.中等职业学校115所,大学8所,培训机构86个,在校生近10万人,教职工13000余人.多年教育信息 ...

最新文章

  1. loadscript加载
  2. 页码太靠上怎么办_有些宝宝到了二岁不会说话怎么办
  3. 银行委托第三方催收信用卡欠款,是合法吗?
  4. 前端学习(3312):redux的正确构建
  5. python123测试_【测码学院】python自动化测试学习-自动化测试模型
  6. StringBuffer和String,StringBuilder的区别?
  7. mac连接ubuntu,tomcat乱码
  8. 【WPF】添加自定义字体
  9. HDU 1394 Minimum Inversion Number(线段树求逆序对)
  10. CRC循环冗余校验码原理解析(附实例)
  11. haskell 基础题解(19)
  12. 燕山大学计算机二级加综测吗,燕山大学大学生创业协会2018至2019季学期综合测评证明(图)...
  13. 文氏图解析SQL语句中JOIN操作
  14. php人人商城定时任务,人人商城异步操作菜单示例
  15. ascii art c语言,ASCII art (简体中文)
  16. android+获取电池信息,Delphi XE5 Android应用程序获取电池信息
  17. QChart动态生成图表(曲线)
  18. 移远公司 NB-IoT模块AT指令详细解释
  19. 迷你播放器--第一阶段(2)--退出时自动最小化(不是关闭),增加当前播放曲目的跑马灯效果
  20. 两次腾讯面试挂二面的苦逼经历

热门文章

  1. kubenates(k8s)部署全家桶
  2. Avue中实现多选删除功能
  3. 人人都是数据分析师??愿韭菜的世界没有镰刀
  4. 盲人导航应用亮相,无需GPS 精度在1米以内
  5. 浙江大学计算机与软件学院2019年考研复试上机模拟练习
  6. Elastic Search — Query DSL
  7. python练习题6
  8. Qt 多国语言国际化
  9. 机器学习数据分析软件:Octave
  10. MAF: ProviderChangeSupport PropertyChangeSupport