目录

非遗介绍

找数据

代码实现:

josn网址:

前期准备:

包装基础函数:

主函数:

完整代码(白嫖代码抄作业):

运行结果:


非遗介绍

国家级非物质文化遗产名录是经国务院批准,由文化和旅游部(简称“文旅部”)确定并公布的国家级非物质文化遗产名录。

在国家非物质文化遗产网可以查询国家级非物质文化遗产代表性项目名录

这次来爬一下这个网站 国家非物质文化遗产网

找数据

点击换页后网址无变动

由此断定网页数据由二次请求导入(json) 

F12检查 打开抓包工具 果然:

在第一页时(两个)

切换到第二页(多了一个):

那么这就是每一页的数据了

来看一下第一页和第二页的请求网址有什么不同:

第一页:

第二页:

很明显 参数p表示的就是页数信息

代码实现:

既然摸清了网页信息 就开始下代码吧

josn网址:

http://www.ihchina.cn/Article/Index/getProject.html?province=&rx_time=&type=&cate=&keywords=&category_id=16&limit=10&p=页数

可以看出这里会有一些空参数(province,rx_time...)

这些参数是筛选用的 正常爬取用不到 所以可以删掉

http://www.ihchina.cn/Article/Index/getProject.html?category_id=16&limit=10&p=页数

前期准备:

引库、准备文件、写入表头、准备headers

open时需添加newline=' '   不然会写一行空一行

# 引用库
import requests
import json
import csv# 准备.csv
f = open('国家级非物质文化遗产代表性项目名录.csv', mode='w', encoding='utf-8', newline='')
writer = csv.writer(f)
# 写入表头
writer.writerow(["名称", "公布时间", "申报地区或单位", "编号", "类型", "详细信息"])# 请求头
h = {"Host": "www.ihchina.cn","Referer": "http://www.ihchina.cn/project","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/92.0.4515.159 Safari/537.36","X-Requested-With": "XMLHttpRequest"
}

包装基础函数:

包含 请求、异常处理(超出最后一页)、从json提取各种信息 、写入文件

def get_info(num):# 空参数可以删掉url = f"http://www.ihchina.cn/Article/Index/getProject.html?category_id=16&limit=10&p={num}"resp = requests.get(url, headers=h)# 当时解析json的时候导出了一下# with open('info362.json', 'w') as f:#     f.write(str(resp.json()))JsonObj = json.loads(resp.text)try:count = len(JsonObj["list"])except TypeError as e:return 'error'for i in range(count):# 名称name = JsonObj["list"][i]["title"]# 公布时间gb_time = JsonObj["list"][i]["rx_time"]# 申报地区或单位gb_time = gb_time.replace('</br>', '')province = JsonObj["list"][i]["province"]# 编号num = JsonObj["list"][i]["num"]# 类型cate = JsonObj["list"][i]["cate"]# 详细信息content = JsonObj["list"][i]["content"]content = content.replace('&lt;br /&gt;\r\n\u3000\u3000', '')writer.writerow([name, gb_time, province, num, cate, content])

主函数:

到最后一页需要跳出、每页完成提示、所有下载完毕提示

一定到记得关文件!!!

f.close()

if __name__ == '__main__':i = 1# 到最后一页后自动跳出while True:if get_info(i) != 'error':print(i, 'ok')else:breaki += 1f.close()print('全部ok')

完整代码(白嫖代码抄作业):

# 创 建 人:Cui.
# 创建时间:2021/8/30 16:45# 'http://www.ihchina.cn/project#target1'"""http://www.ihchina.cn/Article/Index/getProject.html?province=&rx_time=&type=&cate=&keywords=&category_id=16&limit=10&p=页数"""# 引用库
import requests
import json
import csv# 准备.csv
f = open('国家级非物质文化遗产代表性项目名录.csv', mode='w', encoding='utf-8', newline='')
writer = csv.writer(f)
# 写入表头
writer.writerow(["名称", "公布时间", "申报地区或单位", "编号", "类型", "详细信息"])# 请求头
h = {"Host": "www.ihchina.cn","Referer": "http://www.ihchina.cn/project","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/92.0.4515.159 Safari/537.36","X-Requested-With": "XMLHttpRequest"
}def get_info(num):# 空参数可以删掉url = f"http://www.ihchina.cn/Article/Index/getProject.html?category_id=16&limit=10&p={num}"resp = requests.get(url, headers=h)# 当时解析json的时候导出了一下# with open('info362.json', 'w') as f:#     f.write(str(resp.json()))JsonObj = json.loads(resp.text)try:count = len(JsonObj["list"])except TypeError as e:return 'error'for i in range(count):# 名称name = JsonObj["list"][i]["title"]# 公布时间gb_time = JsonObj["list"][i]["rx_time"]# 申报地区或单位gb_time = gb_time.replace('</br>', '')province = JsonObj["list"][i]["province"]# 编号num = JsonObj["list"][i]["num"]# 类型cate = JsonObj["list"][i]["cate"]# 详细信息content = JsonObj["list"][i]["content"]content = content.replace('&lt;br /&gt;\r\n\u3000\u3000', '')writer.writerow([name, gb_time, province, num, cate, content])if __name__ == '__main__':i = 1# 到最后一页后自动跳出while True:if get_info(i) != 'error':print(i, 'ok')else:breaki += 1f.close()print('全部ok')

运行结果:

终端显示

文件查看

打包下载链接:https://download.csdn.net/download/weixin_47128472/21753914

【python+requests】爬取“国家级非物质文化遗产代表性项目名录”相关推荐

  1. 2022年湖北省第六批国家级非物质文化遗产代表性传承人推荐申报范围、名额和申报标准、材料

    深入贯彻党的十九大和十九届历次全会精神,坚持以人民为中心,坚守中华文化立场.传承中华文化基因,铸牢中华民族共同体意识,贯彻"保护为主.抢救第一.合理利用.传承发展"的工作方针,深入 ...

  2. 非物质文化遗产“打柳子”亮相崇礼腊八节

    图为崇礼"忆腊八送福粥打柳子"腊八节庆活动现场表演. 张志艳 摄 中新网石家庄1月13日电 (张帆 靳磊)"打柳子"是河北省张家口市崇礼区唯一一个入选张家口市非 ...

  3. python requests 爬取数据

    python requests 爬取数据 import requests from lxml import etree import time import pymysql import json h ...

  4. 中国书法列入非物质文化遗产

    2009年12月27日01:49 京华时报 本报讯(记者侯艳)前天,中国书法列入<人类非物质文化遗产代表作名录>新闻通报会在京举行.中国书法家协会和中国艺术研究院中国书法院等有关机构将继续 ...

  5. 013 | 民间戏剧类非物质文化遗产的保护与传承 | 大学生创新训练项目申请书 | 极致技术工厂

    (一)研究目的 探讨民间戏剧类非物质文化遗产的保护与传承问题,让民间戏剧进校园,推动民间戏剧的传承人与受众群体年轻化:适当通过政治手段,推动牛娘剧走进大众视野,让民间非遗真正"活" ...

  6. 如何实现沉浸式旅游与非物质文化遗产的共同发展

    中国非物质文化遗产资源丰富,是世界上非物质文化遗产数量最多的国家.丰富多样的资源为非物质文化遗产旅游业的建设提供了良好的基础.非物质文化遗产旅游是基于非物质文化遗产资源开发的文化旅游消费形式.文化资源 ...

  7. 深圳非遗保护添新力量,深圳市河南非物质文化遗产联合会应时而生

    9月25日,在深圳市罗湖区莲塘非遗园里,深圳市河南非物质文化遗产联合会第一次筹备会顺利召开. 深圳市河南非物质文化遗产联合会(筹)是由河南省开封市非物质文化遗产保护协会,开封市非物质文化遗产保护协会, ...

  8. 让珍贵的非物质文化遗产“活”起来----青城派 刘绥滨掌门人

    第二季光芒姐姐·向梦想出发 三千有故事·惊破玄黄宇! 让珍贵的非物质文化遗产"活"起来----青城派 刘绥滨掌门人

  9. SSM毕设项目四川省非物质文化遗产之传统手工技艺数字平台i7k3a(java+VUE+Mybatis+Maven+Mysql)

    SSM毕设项目四川省非物质文化遗产之传统手工技艺数字平台i7k3a(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysq ...

最新文章

  1. 工作中涉及运维知识点的汇总
  2. [jQuery]无法获取隐藏元素(display:none)宽度(width)和高度(height)的新解决方案
  3. 【已解决】[Error] cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_s
  4. lucene 源码分析_Lucene分析过程指南
  5. Opencv——图像金字塔与图像尺寸缩放
  6. Java Double类parseDouble()方法的示例
  7. 长春理工大学c语言实验题库,长春理工大学首届趣味心理知识竞赛初赛题库.doc...
  8. ThinkPHP 3.2 版本升级了哪些内容
  9. Spring面试之不同版本AOP执行顺序详解
  10. cpu 被挂起和阻塞_同步异步阻塞非阻塞并发并行讲解
  11. Struts中ActionActionForm
  12. java简单的思维逻辑训练_简单的代码,适合初学者,锻炼逻辑思维能力,可以练习练习!...
  13. 使用polar si9000计算差分阻抗
  14. 【Android 逆向】Android 逆向用途 | Android 逆向原理
  15. C# managed, unmanaged, unsafe 的比较
  16. 【C++】之内联函数(inline)
  17. 计算机四级网络工程师 郑州报考条件,郑州市网络工程师证在哪报名、考试费用...
  18. java dump文件怎么生成和分析-JMAP用法
  19. 使用fiddler抓取HTTPS协议数据与疑难杂症终极解决方案
  20. Twing Hot Link For PSP 公测版正式发布!

热门文章

  1. 神经网络中的sigmoid函数
  2. Dos 命令(2021/3/1)
  3. c语言学习,使用文档来查找学习库函数
  4. java从json数组中提取数据,从JSON数组中提取数据
  5. Unity2021接入讯飞语音听写(Android)
  6. 2021年N1叉车司机考试题库及N1叉车司机模拟考试
  7. Js 时间间隔计算(间隔天数)
  8. qnap直接用linux命令,QNAP之如何使用第三方百度网盘挂到nas上下载
  9. [随笔]python之print函数总结
  10. CTPN文本检测网络