欢迎光临UUpython
最大、最新、最全的Python代码收集站

获取中国新闻网的资讯归档

这段代码是一个简单的Python脚本,用于从中国新闻网上抓取新闻标题、栏目和时间信息,并将这些信息存储到一个Excel文件中。代码使用了requests库来发送HTTP请求,BeautifulSoup库来解析HTML内容,以及openpyxl库来操作Excel文件。

以下是代码的主要功能和流程:

  1. 导入所需的模块:
  • requests:用于发送HTTP请求和获取网页内容。
  • BeautifulSoup:用于解析HTML页面内容。
  • openpyxl 中的 Workbook 类:用于创建Excel工作簿。
  1. 获取当前时间并格式化:
  • 使用datetime模块获取当前时间。
  • 使用strftime方法将时间格式化为指定的字符串格式,以便作为Excel文件名的一部分。
  1. 创建Excel工作簿和Sheet页:
  • 使用Workbook类创建一个Excel工作簿。
  • 添加一个Sheet页并指定名称为’Sheet1’。
  1. 定义表头:
  • 使用sheet['A1']sheet['B1']sheet['C1']设置表头内容。
  1. 遍历不同页的新闻信息:
  • 使用一个循环遍历不同页码的新闻页面。
  • 构建URL并发送GET请求获取网页内容。
  1. 使用BeautifulSoup解析HTML内容:
  • 解析网页内容,提取栏目、标题和时间的信息。
  1. 循环遍历新闻数据并写入Excel表格:
  • 使用一个循环遍历每个新闻条目的栏目、标题和时间信息。
  • 使用sheet.append将这些信息逐行添加到Excel表格中。
  1. 保存Excel文件:
  • 使用wb.save方法将Excel工作簿保存为一个Excel文件,文件名中包含格式化后的时间。

此脚本通过爬取中国新闻网的新闻页面,将抓取到的新闻标题、栏目和时间信息存储到一个Excel文件中。运行此脚本前,请确保已安装了 requestsBeautifulSoupopenpyxl 库。另外,根据需要可以修改代码中的URL和其他参数。

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from datetime import datetime

# -----参考文档,三件套-------
# https://docs.python-requests.org/en/latest/
# https://www.crummy.com/software/BeautifulSoup/bs4/doc/
# https://openpyxl.readthedocs.io/en/stable/
# https://docs.python.org/3/library/stdtypes.html#str.strip (切片)
# -----参考文档,三件套-------


# 5.1 新增时间格式规范化输出文件名
# 获取当前时间
now = datetime.now()
# 将时间格式化为指定的字符串格式
# formatted_time = now.strftime('%Y-%-m-%-d')
formatted_time = now.strftime('%Y-%m-%d')

# 创建一个Workbook对象,用于Excel的读写
wb = Workbook()

# 添加一个Sheet页,并且指定Sheet名称
sheet = wb.active
sheet.title = 'Sheet1'

# 定义变量row,用于循环时控制每一行的写入位置
row = 1

# 添加表头
sheet['A1'] = '栏目'
sheet['B1'] = '标题'
sheet['C1'] = '时间'

# 遍历页码从1到2页
for page_num in range(1,3):
    # f-string
    url = f"https://www.chinanews.com.cn/scroll-news/news{page_num}.html"

    # 反爬通用套码
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }

    r = requests.get(url, headers=headers)
    r.encoding='utf-8'
    soup = BeautifulSoup(r.text, 'html.parser')

    # 遍历栏目、标题和时间
    dangdu_lanmu = soup.find_all('div', class_='dd_lm')
    dangdu_biaoti = soup.find_all('div', class_='dd_bt')
    dangdu_time = soup.find_all('div', class_='dd_time')
    
    # 追加具体数据
    for news_num in range(len(dangdu_lanmu)):
        sheet.append([dangdu_lanmu[news_num].text.strip('[]'), dangdu_biaoti[news_num].text, dangdu_time[news_num].text])
        # row=row+1
        row += 1

# 保存Excel文件
wb.save("chinanews_{}.xlsx".format(formatted_time))
赞(0) 打赏
未经允许不得转载:UUpython » 获取中国新闻网的资讯归档
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!