当前位置: 首页 > article >正文

python 爬取人民新闻

基础信息获取:

要闻url:https://www.gov.cn/yaowen/liebiao/home.htm

下一页的url:https://www.gov.cn/yaowen/liebiao/home_1.htm

基础代码:

import re
import openpyxl
import requests
from lxml import etree
import os

def download_xinwen():
    basic_url = 'https://www.gov.cn/yaowen/liebiao/home.htm'
    for num in range(1, 5):
        print(f"Downloading:第{num}页")
        new_url = 'https://www.gov.cn/yaowen/liebiao/home_{}.htm'.format(num)
        headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'}
        response = requests.get(new_url, headers=headers)
        response.encoding = 'utf8'
        # print(response.text)
        html = etree.HTML(response.text)
        xinwen_info = html.xpath('//div//li//h4/a/text()')
        xinwen_lianjie = html.xpath('//h4/a/@href')
        for describe, download_url in zip(xinwen_info, xinwen_lianjie):
            print("新闻标题:", describe, "|", "新闻链接:", download_url)
            # if "https" not in download_url:
            #     original_str = download_url
            #     new_str = original_str.replace("./", "")
            #     download_url ="https://www.gov.cn/yaowen/liebiao/" + new_str
            #     # print(download_url)
            # print("新闻标题:", describe, "|", "新闻链接:", download_url)



            # new_xinwen_url = download_url.split('.')[-1]
            # print(new_xinwen_url)


download_xinwen()

返回:

 可以看到有的url链接爬取下来之后不是全路径,针对这个问题加上如下代码:

在for循环内加上判断,如果https不在url列表里,说明这个url不是全路径,将./全部替换成空字符,再拼接下基础url,这样遍有了url全路径

             if "https" not in download_url:
                 original_str = download_url
                 new_str = original_str.replace("./", "")
                 download_url ="https://www.gov.cn/yaowen/liebiao/" + new_str
                
             print("新闻标题:", describe, "|", "新闻链接:", download_url)

再次运行调试:

url连接都是全路径了


http://www.kler.cn/a/271386.html

相关文章:

  • 【Proteus仿真】【51单片机】简易计算器系统设计
  • 392.判断子序列
  • 0 基础学运维:解锁 K8s 云计算运维工程师成长密码
  • 表格结构标签
  • 《DeepSeek-R1 问世,智能搜索领域迎来新变革》
  • 浅谈AI的发展对IT行业的影响
  • Godot 学习笔记(1):环境配置
  • 面相对象基础
  • QT进阶---------pro项目文件中的常用命令 (第三天)
  • 计算机设计大赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
  • 个人网站制作 Part 9 添加发布、管理博客功能 | Web开发项目
  • 树状数组学习
  • ADO .Net操作SQL Server数据库
  • lime,一个超级厉害的 Python 库!
  • 第八阶段:uni-app小程序 --首页开发(2)
  • MATLAB中的矩阵和数组,它们之间有什么区别?
  • 本地用AIGC生成图像与视频
  • 网络安全等级测评师考试培训可以参考哪些资料?
  • SpringAI——Java生态接入LLM
  • 【Python】【数据类型】List (列表) 的常见操作
  • 将 OpenCV 与 Eclipse 结合使用(插件 CDT)
  • IOS面试题object-c 111-115
  • VsCode 配置go开发环境之下载go tools
  • Python之requests实现github模拟登录
  • 智慧交通:构建智慧城市的重要一环
  • Ribbon跟Nginx实现负载均衡的区别!