人民日报--全站图文数据库信息采集

news2024/11/24 6:20:16

支持2020-2023所有图文数据采集
在这里插入图片描述

#!/usr/bin/python3
# -*- coding:utf-8 -*-
import requests
import re
from lxml import etree
from sdk.utils.util_decorate import retry

@retry(retry=3,sleep=5)
def get_html(url):
    response = requests.get(url)
    response.encoding = "utf-8"
    if response.status_code == 200:
        return response.text
    else:
        print(response.status_code)
        return "ERROR"

def get_text(text):
    if isinstance(text,str):
        return re.sub("\\r|\\n|\\t| | ", "", text).strip(" ")
    elif isinstance(text,list):
        return "".join([re.sub("\\r|\\n|\\t| | ", "", i).strip(" ") for i in text])


def anlise_detail(detail_html):
    tree = etree.HTML(detail_html)
    lis = tree.xpath('//div[@class="article"]|//div[@class="text_c"]')
    for li in lis:
        title = get_text(li.xpath('./h1/text()'))
        print("标题",title)
        title2 = get_text(li.xpath('./h2/text()')).strip("\n")
        if title2:
            print("副标题",title2)
        pusblish_info = get_text(li.xpath('.//span[@class="date"]/text()|//div[@class="lai"]//text()'))
        print("文章信息",pusblish_info)
        content = get_text(li.xpath('.//div[@id="ozoom"]//p/text()'))
        print(content)
        img_list = [i.replace("../../../", "http://paper.people.com.cn/rmrb/") if not i.startswith("http://") else i for
                    i in
                    li.xpath('.//img/@src')]
        if img_list:
            print(img_list)


year_list = [str(i) for i in range(2020,2024)]
month_list = [str(i).zfill(2) for i in range(1,13)]
day_list = [str(i).zfill(2) for i in range(1,32)]

for year in year_list:
    for month in month_list:
        for day in day_list:
            head = "http://paper.people.com.cn/rmrb/html/{}-{}/{}/".format(year,month,day)
            for i in range(1,21):
                url = "{}nbs.D110000renmrb_{}.htm".format(head,str(i).zfill(2))
                # print(url)
                html = get_html(url)["msg"]
                if html != "ERROR":
                    tree = etree.HTML(html)
                    lis = tree.xpath('//div[@class="news"]/ul|//div[@id="titleList"]/ul')
                    for li in lis:
                        detail_url_list = li.xpath('./li/a/@href')
                        name_list = li.xpath('./li/a//text()')
                        for name,_url in zip(name_list, detail_url_list):
                            detail_url = "{}{}".format(head,_url)
                            name = re.findall('document\.write\(view\(\"(.*?)\"\)\)',name)[0].strip()
                            print(name,detail_url)
                            detail_html = get_html(detail_url)["msg"]
                            if detail_html != "ERROR":
                                anlise_detail(detail_html)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode刷题笔记--Hot31-40

1--颜色分类&#xff08;75&#xff09; 主要思路&#xff1a; 快排 #include <iostream> #include <vector>class Solution { public:void sortColors(std::vector<int>& nums) {quicksort(nums, 0, nums.size()-1);}void quicksort(std::vector<int…

Java虚拟机

文章目录 JVM运行时数据区域HotSpot虚拟机对象探秘实战&#xff1a;OutOfMemoryError异常 JVM 运行时数据区域 HotSpot虚拟机对象探秘 实战&#xff1a;OutOfMemoryError异常

01-6W2H方法

前言&#xff1a;6W2H法是我们制定策略时的黄金策略&#xff0c;并有不同的衍生版本&#xff0c;比如5W1H、3W1H等等&#xff0c;都是结合实际情况进行的剪裁运用。通过6W2H思想方法来进行研发管理以及问题分析&#xff0c;具备清晰的思路。 脑图&#xff1a;//参考

【Flutter】Flutter 使用 flex_color_scheme 创建美观的 Material Design 主题

【Flutter】Flutter 使用 flex_color_scheme 创建美观的 Material Design 主题 文章目录 一、前言二、FlexColorScheme 简介三、开始使用 FlexColorScheme四、实际业务中的应用五、FlexColorScheme 的高级功能六、完整实际业务代码示例七、总结 一、前言 今天&#xff0c;我想…

【算法刷题之字符串篇】

目录 1.leetcode-344. 反转字符串&#xff08;1&#xff09;方法&#xff1a;双指针 2.leetcode-541. 反转字符串 II&#xff08;1&#xff09;方法一&#xff1a;模拟&#xff08;2&#xff09;方法二&#xff1a;双指针 3.leetcode-剑指 Offer 05. 替换空格&#xff08;1&…

【大数据知识】大数据平台和数据中台的定义、区别以及联系

数据行业有太多数据名词&#xff0c;例如大数据、大数据平台、数据中台、数据仓库等等。但大家很容易混淆&#xff0c;也很容易产生疑问&#xff0c;今天我们就来简单聊聊大数据平台和数据中台的定义、区别以及联系。 大数据平台和数据中台的定义 大数据平台&#xff1a;一个…

AUTOSAR系列专题--诊断模块(下)

往期小怿向各位小伙伴介绍了&#xff0c;文章内容过多分为了两期&#xff0c;本期为大家介绍《AUTOSAR模块之诊断篇&#xff08;下&#xff09;》。 目录 1.概述 2.DCM 3.DEM 4.FIM 5.结语 点击查看前文&#xff1a;AUTOSAR系列专题--诊断模块&#xff08;上&#xff09;…

设备维护管理软件哪家好?设备巡检系统对企业经营管理有什么好处?

随着时代的不断进步&#xff0c;科学技术的飞速发展以及自动化水平的持续提高&#xff0c;设备维护保养工作在日常工作生产中扮演着至关重要的角色。然而&#xff0c;在实际生产中&#xff0c;由于对设备性能和保养规程的不熟悉&#xff0c;常常出现误操作、保养不到位或无法及…

如何修改字符串内容?

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈Java &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; String 1. 修改字符串2. StringBuilder和…

bpmnjs Properties-panel拓展(属性设置篇)

最近有思考工作流相关的事情&#xff0c;绘制bpmn图的工具认可度比较高的就是bpmn.js了&#xff0c;是一个基于node.js的流程图绘制框架。初始的框架只实现了基本的可视化&#xff0c;想在xml进行客制化操作的话需要拓展&#xff0c;简单记录下几个需求的实现过程。 修改基础 …

leetcode 516. 最长回文子序列

2023.8.27 本题依旧使用dp算法做&#xff0c;可以参考 回文子串 这道题。dp[i][j]定义为&#xff1a;子串s[i,j] 的最长回文子串。 直接看代码: class Solution { public:int longestPalindromeSubseq(string s) {vector<vector<int>> dp(s.size(),vector<int&…

JVM知识点(一)

1、JVM基础概念 &#xff08;1&#xff09;JVM、JRE、JDK JRE&#xff1a;JVM基本类库组成的运行环境就是JRE。JVM自己是无法完成一次编译&#xff0c;处处运行的&#xff0c;需要有一个基本类库告诉JVM如何操作运行&#xff0c;如如何操作文件&#xff0c;连接网络等&#x…

四川玖璨电子商务有限公司:短视频运营表格

随着互联网的飞速发展和用户对内容需求的不断增加&#xff0c;短视频运营成为了当前互联网领域的一大热门。短视频作为一种具有高度吸引力和传播力的内容形式&#xff0c;成为各大平台争相追逐和竞争的热点。 然而&#xff0c;短视频运营并非一项简单的任务。为了能够在激烈的…

HOOPS Exchange如何实现3D模型格式转换?

HOOPS Exchange是一个专业的3D数据转换工具包&#xff0c;用于处理各种不同格式的3D模型数据。它提供了高效、精确的转换和处理功能&#xff0c;让开发者能够在不同的3D软件和环境之间无缝交换模型数据。 HOOPS Exchange将模型加载到标准化数据结构中&#xff0c;可以查询该数…

Android Update Engine 分析(二十一)Android A/B 更新过程

0. 背景 早期 Android A/B 系统升级在 Android 7.1 版本推出时&#xff0c;参考文档十分有限&#xff0c;也就是 Android 官方大概有两三个页面介绍文档。 我的第一篇 A/B 系统分析文章《Android A/B System OTA分析&#xff08;一&#xff09;概览》从总体上介绍了什么是 A/…

全面解析MES系统中的车间退料管理

一、车间退料管理的定义&#xff1a; 车间退料是指在生产过程中&#xff0c;将不合格或多余的物料、半成品或成品从车间环节返还到供应链的过程。车间退料管理则是指对这一退料过程进行规范化、系统化的管理和跟踪。 二、车间退料管理的流程&#xff1a; 1. 退料申请&#xf…

不会用这个工具,你的Linux服务器就是个摆设!

大家好&#xff0c;我的网工朋友 在运维这一块&#xff0c;没有工具可谓是寸步难行。 一个好的Linux运维&#xff0c;为了提升自己的工作效率&#xff0c;免不得会找一些适合自己业务需求的工具&#xff0c;用起来工作效率高&#xff0c;工作幸福指数直线上升。 今天整理了几…

数字化、智能化的酒店固定资产管理系统

酒店固定资产管理系统是一种专门为酒店行业定制的管理软件&#xff0c;可以帮助酒店管理者全面、准确地管理固定资产。该系统具有以下实际功能和特点&#xff1a;  资产库存功能&#xff1a;通过扫描二维码或手动输入条形码&#xff0c;完成酒店固定资产的有效总结&#xff0…

windows搭建向量数据库milvus

这里我们使用docker的方式&#xff0c;搭建本地向量数据库。 首先安装docker&#xff0c;windows下载安装docker。 下载链接&#xff1a;https://docs.docker.com/desktop/install/windows-install/ 安装完成后&#xff0c;开始菜单可以看到docker。 安装milvus 下载 YAML文…

探索内网穿透工具:实现局域网SQL Server数据库的公网远程访问方法

文章目录 1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL Server本地连接测试2.3 Cpolar内网穿透的下载和安装2.3 Cpolar内网穿透的注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 数据库的重要性相信大家都有所了解&…