毎日の記事をクロールする

毎日の記事をクロールして Word 文書に保存するためのチュートリアル

このチュートリアルでは、Python クローラー テクノロジを使用して Daily Yiwen Web サイト (https://meiriyiwen.com/random) から記事をクロールし、Word 文書に保存します。次のトピックについて説明します: HTTP リクエスト、HTML 解析、データ抽出、BeautifulSoup ライブラリを使用した Web ページ解析。

1.HTTPリクエスト

まず、HTTP リクエストを送信して、ターゲット ページのコンテンツを取得する必要があります。requestsモジュール内のメソッドを使用してget()GET リクエストを送信し、取得した内容を出力します。

import requests

# 发送 HTTP GET 请求
response = requests.get('https://meiriyiwen.com/random')

# 解码响应内容
decoded_content = response.content.decode('utf-8')

# 打印观察获取的内容
print(decoded_content)  

ここに画像の説明を挿入

2. HTMLの解析

取得した HTML コンテンツを解析して必要なデータを抽出する必要があります。これを行うには、BeautifulSoupHTML 解析用のライブラリを使用し、解析されたコンテンツを印刷して観察します。

import requests
from bs4 import BeautifulSoup

# 发送 HTTP GET 请求
response = requests.get('https://meiriyiwen.com/random')

# 解码响应内容
decoded_content = response.content.decode('utf-8')

# 使用 BeautifulSoup 解析 HTML 内容
soup = BeautifulSoup(decoded_content, 'html.parser')

# 打印观察解析后的内容
print(soup.prettify())  # 输出格式化后的前 500 个字符,方便观察

ここに画像の説明を挿入

3. データ抽出

これで、HTML 構造に基づいて必要なデータを抽出できるようになりました。私たちの目標は、記事のタイトル、著者、内容を抽出することです。

# 提取文章标题
title = soup.find('h1').text.strip()

# 提取文章作者
author = soup.find('p', class_='article_author').text.strip()

# 提取文章内容
content_tags = soup.find('div', class_='article_text').find_all('p')
content = '\n'.join([tag.text.strip() for tag in content_tags])

ここに画像の説明を挿入

4. Word文書に保存

記事を Word 文書に保存するには、python-docxライブラリのクラスを使用しますDocument空の Word 文書を作成し、タイトル、作成者、内容を追加して、.docxファイルとして保存します。

from docx import Document

# 创建 Word 文档
document = Document()

# 添加标题
document.add_heading(title, level=1)

# 添加作者
document.add_paragraph('作者: ' + author)

# 添加内容
document.add_paragraph(content)

# 保存 Word 文档
doc_file_name = title + '.docx'
document.save(doc_file_name)

# 输出保存成功的提示信息
print("文件保存成功:" + doc_file_name)

ここに画像の説明を挿入

完全なコード

import requests  # 导入 requests 模块,用于发送 HTTP 请求和获取网页内容
from bs4 import BeautifulSoup  # 导入 BeautifulSoup 模块,用于解析 HTML 内容
from docx import Document  # 导入 Document 类,用于创建和编辑 Word 文档

# 发送请求并获取网页内容
response = requests.get('https://meiriyiwen.com/')
response.raise_for_status()  # 检查是否请求成功
html_content = response.content  # 获取网页内容的二进制数据

# 解析 HTML 内容
soup = BeautifulSoup(html_content, 'html.parser')  # 使用 BeautifulSoup 解析 HTML 内容

# 提取文章标题、作者和内容
title = soup.find('h1').text.strip()  # 提取文章标题,使用 strip() 方法去除标题两边的空白字符
author = soup.find('p', class_='article_author').text.strip()  # 提取文章作者
content_tags = soup.find('div', class_='article_text').find_all('p')  # 提取文章内容的所有 <p> 标签
content = '\n'.join([tag.text.strip() for tag in content_tags])  # 将内容的所有段落文本拼接在一起,使用换行符分隔

# 创建 Word 文档
document = Document()  # 创建一个空的 Word 文档

# 添加标题
document.add_heading(title, level=1)  # 添加文章标题,设置标题级别为 1

# 添加作者
document.add_paragraph('作者: ' + author)  # 添加作者信息

# 添加内容
document.add_paragraph(content)  # 添加文章内容

# 保存 Word 文档
doc_file_name = title + '.docx'  # 设置 Word 文档的文件名,使用文章标题作为文件名
document.save(doc_file_name)  # 保存 Word 文档到指定文件名

# 输出保存成功的提示信息
print("文件保存成功:" + doc_file_name)  # 打印保存成功的提示信息,包含文件名


おすすめ

転載: blog.csdn.net/m0_67268191/article/details/131787015