目次
" >
pip install pdfkit
ログイン後にコピー
WeChat パブリック アカウントの記事をクロールし、PDF ファイルとして保存します (Python メソッド)
[関連する学習の推奨事項: WeChat パブリック アカウント開発チュートリアル ]
はじめに
初めてブログを書くのですが、主な内容は、WeChat 公開アカウントから記事をクロールし、記事を PDF 形式でローカルに保存することです。
WeChat パブリック アカウントの記事のクロール (wechatsogou を使用)
1. インストール
pip install wechatsogou --upgrade
ログイン後にコピー
wechatsogou は、Sogou WeChat 検索に基づいた WeChat パブリック アカウント クローラー インターフェイスです
# 2. 利用方法利用方法は以下の通りですimport wechatsogou # captcha_break_time为验证码输入错误的重试次数,默认为1 ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3) # 公众号名称 gzh_name = '' # 将该公众号最近10篇文章信息以字典形式返回 data = ws_api.get_gzh_article_by_history(gzh_name)
ログイン後にコピー
{ 'gzh': { 'wechat_name': '', # 名称 'wechat_id': '', # 微信id 'introduction': '', # 简介 'authentication': '', # 认证 'headimage': '' # 头像 }, 'article': [ { 'send_id': int, # 群发id,注意不唯一,因为同一次群发多个消息,而群发id一致 'datetime': int, # 群发datatime 10位时间戳 'type': '', # 消息类型,均是49(在手机端历史消息页有其他类型,网页端最近10条消息页只有49),表示图文 'main': int, # 是否是一次群发的第一次消息 1 or 0 'title': '', # 文章标题 'abstract': '', # 摘要 'fileid': int, # 'content_url': '', # 文章链接 'source_url': '', # 阅读原文的链接 'cover': '', # 封面图 'author': '', # 作者 'copyright_stat': int, # 文章类型,例如:原创啊 }, ... ] }
ログイン後にコピー
pip install pdfkit
ログイン後にコピー
3. 使い方pip install pdfkit
ログイン後にコピー
import pdfkit
# 根据url生成pdf
pdfkit.from_url('http://baidu.com','out.pdf')
# 根据html文件生成pdf
pdfkit.from_file('test.html','out.pdf')
# 根据html代码生成pdf
pdfkit.from_string('Hello!','out.pdf')
ログイン後にコピー
上記で取得した記事URLを直接使用してPDFを生成すると、PDFファイルに記事画像が表示されないという問題が発生します。 解決策: import pdfkit # 根据url生成pdf pdfkit.from_url('http://baidu.com','out.pdf') # 根据html文件生成pdf pdfkit.from_file('test.html','out.pdf') # 根据html代码生成pdf pdfkit.from_string('Hello!','out.pdf')
ログイン後にコピー
# 该方法根据文章url对html进行处理,使图片显示 content_info = ws_api.get_article_content(url) # 得到html代码(代码不完整,需要加入head、body等标签) html_code = content_info['content_html']
ログイン後にコピー
pdfkit.from_string() メソッドを呼び出して PDF ファイルを生成します。記事内の写真を検索するとPDFファイルで表示されます。
import os
import pdfkit
import datetime
import wechatsogou
# 初始化API
ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3)
def url2pdf(url, title, targetPath):
'''
使用pdfkit生成pdf文件
:param url: 文章url
:param title: 文章标题
:param targetPath: 存储pdf文件的路径
'''
try:
content_info = ws_api.get_article_content(url)
except:
return False
# 处理后的html
html = f'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{title}</title>
</head>
<body>
<h2 style="text-align: center;font-weight: 400;">{title}</h2>
{content_info['content_html']}
</body>
</html>
'''
try:
pdfkit.from_string(html, targetPath + os.path.sep + f'{title}.pdf')
except:
# 部分文章标题含特殊字符,不能作为文件名
filename = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.pdf'
pdfkit.from_string(html, targetPath + os.path.sep + filename)
if __name__ == '__main__':
# 此处为要爬取公众号的名称
gzh_name = ''
targetPath = os.getcwd() + os.path.sep + gzh_name
# 如果不存在目标文件夹就进行创建
if not os.path.exists(targetPath):
os.makedirs(targetPath)
# 将该公众号最近10篇文章信息以字典形式返回
data = ws_api.get_gzh_article_by_history(gzh_name)
article_list = data['article']
for article in article_list:
url = article['content_url']
title = article['title']
url2pdf(url, title, targetPath)
ログイン後にコピー関連学習の推奨事項:
import os import pdfkit import datetime import wechatsogou # 初始化API ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3) def url2pdf(url, title, targetPath): ''' 使用pdfkit生成pdf文件 :param url: 文章url :param title: 文章标题 :param targetPath: 存储pdf文件的路径 ''' try: content_info = ws_api.get_article_content(url) except: return False # 处理后的html html = f''' <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{title}</title> </head> <body> <h2 style="text-align: center;font-weight: 400;">{title}</h2> {content_info['content_html']} </body> </html> ''' try: pdfkit.from_string(html, targetPath + os.path.sep + f'{title}.pdf') except: # 部分文章标题含特殊字符,不能作为文件名 filename = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.pdf' pdfkit.from_string(html, targetPath + os.path.sep + filename) if __name__ == '__main__': # 此处为要爬取公众号的名称 gzh_name = '' targetPath = os.getcwd() + os.path.sep + gzh_name # 如果不存在目标文件夹就进行创建 if not os.path.exists(targetPath): os.makedirs(targetPath) # 将该公众号最近10篇文章信息以字典形式返回 data = ws_api.get_gzh_article_by_history(gzh_name) article_list = data['article'] for article in article_list: url = article['content_url'] title = article['title'] url2pdf(url, title, targetPath)
ログイン後にコピー
以上がWeChat パブリック アカウントの記事をクロールし、PDF ファイルとして保存します (Python メソッド)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
2週間前
By DDD
R.E.P.O.誰も聞こえない場合はオーディオを修正する方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.チャットコマンドとそれらの使用方法
4週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7523
15


CakePHP チュートリアル
1378
52


Steamのアカウント名の形式は何ですか
81
11


NYTの接続はヒントと回答です
21
74

