【Python爬虫实战】抓取省市级城市常务会议内容

news/2024/7/19 10:13:04 标签: 爬虫, 开发语言, r, r语言, 自然语言处理
rticle class="baidu_pl">
rticle_content" class="article_content clearfix">
rkdown_views prism-tomorrow-night"> rg/2000/svg" style="display: none;"> roke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">

r="bluef" size="5">🍉CSDN小墨&晓末:r="grey" size="5">https://blog.csdn.net/jd1813346972r /> r />

r="bluef" size="4">   个人介绍:r="grey" size="4"> 研一|统计学|干货分享r /> r="grey" size="4">         擅长Python、Matlab、R等主流编程软件 r /> r="grey" size="4">         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

文章目录

  • 1 设置内容存储位置及加载包
  • 2 首页网页文本内容爬取
  • 3 循环抓取后续网页
  • 4 数据存储

实现基于R语言的省级常务会议内容的网页ref="/tags/PaChong.html" title=爬虫>爬虫,包括htlm页面解析,由于首页与其它页网页url格式不同的循环读取方式,以及数据存储功能,代码块内附完整编码解析。

  实现效果:

rc="https://img-blog.csdnimg.cn/direct/d461a2012a074ec397634d4cbc5c97cc.png#pic_center" alt="在这里插入图片描述" />

1 设置内容存储位置及加载包

re>setwd("F:\\地级城市政策")#设置文件保存路径 library(rvest) library(stringr) library(rlist) re>

2 首页网页文本内容爬取

re>#读取第一页文件内容 url1 <-("http://www.lijiang.gov.cn/html/zhengwugongkai/zhengfuxinxigongkai/fadingzhudonggongkaineirong/zhengfuhuiyi/changwuhuiyi/index.html") httr_web <-read_html(url1,encoding ='utf-8') #抓取网页 #具体时间 time<-httr_web%>%html_nodes('ul.wjer_list li span')%>%html_text(trim = T)#抓取具体时间 ###### timel<-data.frame() for (i in 1:length(time)){ if(i/2==2){ timel[i]<-time[i] } } time<-strsplit(time,split = "-") # strsplit函数将数据拆分成列表(年月日) time<-strsplit(time,split = ":") # strsplit函数将数据拆分成列表(年月日) for(i in 1:length(time)) #定义语句循环次数,直至所有链接提取完成 { time[i]<-time[[i]][2] #提取列表中位置2的信息,填充websites1 } for(i in 1:length(time)) #定义语句循环次数,直至所有链接提取完成 { time[i]<-strsplit(time[[i]],split = "-") #提取列表中位置2的信息,填充websites1 } ########### time<-do.call(rbind,time)[,1:2]# 将列表转换为矩阵,提取第第一列和第二列(年、月) time<-data.frame(time) #转化为数据框形式 po<-data.frame(time)#列合并数据框,格式为次数、年份、月份 re>

3 循环抓取后续网页

re>po<-data.frame() index <-seq(1,8,1) for (i in index){# 读取网址 url = paste("http://www.cxz.gov.cn/xxgk/xxgkzhlistpage.jsp?totalpage=8&PAGENUM=",i,"&urltype=tree.TreeTempUrl&wbtreeid=1977") url2<-str_replace_all(url," ","") #合并网页去掉空格 url <-(url2)#由于直接使用url2抓取内容为空:原因未知,故重新读取一次 httr_web <-read_html(url,encoding ='utf-8') #抓取网页 #具体时间 time<-httr_web%>%html_nodes('ul li span')%>%html_text()#抓取链接 #具体时间 time<-strsplit(time,split = "-") # strsplit函数将数据拆分成列表(年月日) time<-do.call(rbind,time)[,1:2]# 将列表转换为矩阵,提取第第一列和第二列(年、月) time<-data.frame(time) #转化为数据框形式 timek<-data.frame(time) po<-data.frame(rbind(po,timek)) } po1<-po po1$X1<-as.numeric(as.character(po1$X1)) po1$X2<-as.numeric(as.character(po1$X2)) time3<-data.frame(2018,7) names(time3)<-c("X1","X2") po1<-data.frame(rbind(po1,time3)) re>

4 数据存储

re>#将因子型转化为数值型 po1<-po po1$X1<-as.numeric(as.character(po1$X1)) po1$X2<-as.numeric(as.character(po1$X2)) ##已获得每个常务会网页的网址及命名需要数据(年份、月份,第k次),现循环存储每个网页文本内容 comments1<-as.character(comments$websites2)#将因子型转化为字符串,即网页形式 p=length(comments1) for(k in 1:length(comments1)) #定义语句循环次数,直至所有链接提取完成 { ur2 <-comments1[k] httr_web2 <-read_html(ur2,encoding ='utf-8') #抓取网页 text<-httr_web2%>%html_nodes('div.xw-txt p')%>%html_text(trim =T) name<-paste("天津市\\","天津",po1[1:p,1][k],po1[1:p,2][k],68-k+1,".txt")#文件命名 write.table(text, file = name, sep = "\n", row.names = F, col.names = F) } ur2 <-comments1[1] httr_web2 <-read_html(ur2,encoding ='utf-8') #抓取网页 text<-httr_web2%>%html_nodes('div.xw-txt p')%>%html_text(trim =T) re>
reeSkill">

http://www.niftyadmin.cn/n/5410946.html

相关文章

关于Spark中OptimizeShuffleWithLocalRead 中自己的一些理解

背景 本文基于 Spark 3.5 关于ShuffleLocalRead的作用简单的来说&#xff0c;就是会按照一定的规则&#xff0c;从一个 map Task 中连续读取多个 reduce数据 的任务&#xff0c;&#xff08;正常的情况下是读取所有map Task中特定的一个reduce数据任务&#xff09;&#xff0c…

LVS四层负载均衡集群

简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩博士主导的开源负载均衡项目&#xff0c;目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案&#xff0c;终端互联网用户从外部访…

开源的分布式 NoSQL 数据库管理系统 王者 Cassandra 简介 应用场景 优点 不足 版本历史

Cassandra 是一个开源的分布式 NoSQL 数据库管理系统&#xff0c;最初由 Facebook 开发&#xff0c;并于2008年开源。它被设计用于处理大规模的数据&#xff0c;具有高可用性和高性能的特点。以下是对 Cassandra 的简介、应用场景、优点和不足的概述&#xff1a; 简介&#xf…

基于Spring Boot + Vue的信息化在线教学平台

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

小程序Taro框架 自定义底部Tabbar,处理自定义Tab栏切换卡顿、闪烁

最终效果 最近在用Taro框架开发一个小程序&#xff0c;有一个自定义底部Tabbar的需求&#xff0c;最终效果如下 起步 这页是我第一次接触自定义小程序底部Tabbar&#xff0c;所有第一选择必然是相看官方文档&#xff1a;微信小程序自定义 Tabbar | Taro 文档 &#xff08;如果…

java ~ word模板填充字符后输出到指定目录

word文件格式&#xff1a; jar包&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0</version></dependency>样例代码&#xff1a; // 封装参数集合Map<String, Ob…

Unity的相机跟随和第三人称视角二

Unity的相机跟随和第三人称视角二 展示介绍第二种相机模式远离代码总结 展示 我录的视频上可能看不太出来&#xff0c;但是其实今天的这个方法比原来写的那个方法更简便并且死角更少一些。 这里我也做了两个人物偏移的视角&#xff0c;按Q是原来的两个相机模式切换&#xff0c…

项目一:踏上Java开发之旅(2023软件1班)

文章目录 一、实战概述二、实战步骤任务1&#xff1a;安装配置JDK开发第一个Java程序1、安装JDK2、配置Java环境变量3、开发第一个Java程序&#xff08;1&#xff09;编写源程序 - HelloWorld.java&#xff08;2&#xff09;编译成字节码文件 - HelloWorld.class&#xff08;3&…