日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【全網(wǎng)獨家有效】一鍵爬取微信公眾號所有文章,原樣保留格式成PDF!

 真友書屋 2024-05-31 發(fā)布于浙江

還在手動截圖或復制粘貼保存微信公眾號的好文章?告訴你一個更高效的方法,可以讓你自動化將你喜歡的微信公眾號文章保存為PDF,而且格式不變!這不僅可以幫你輕松整理、歸檔文章,還能在作者刪除或公眾號被封時,依然保留那些珍貴的內(nèi)容。今天,我將為大家?guī)硪豁楊嵏残缘募夹g(shù)——自動化爬取微信公眾號文章并原樣保留格式存儲為PDF文件!從此告別繁瑣,一鍵搞定!而且是全網(wǎng)獨此真正有效代碼


一、為何需要下載微信公眾號文章為PDF?

微信公眾號作為我們獲取信息、學習知識的重要渠道,每天都有大量的優(yōu)質(zhì)文章涌現(xiàn)。然而,有時候我們會遇到一些不可預見的情況,比如文章被作者刪除、微信公眾號被封號等,導致我們無法再次找到這些好文章。或者,長按復制鏈接,打開網(wǎng)頁版保存,但總是少了點什么——格式、圖片、排版全都變了樣。為了避免這些遺憾,將文章下載到本地并保存為PDF格式成為了一個很好的選擇。PDF格式具有跨平臺、不易修改等特點,能夠確保文章內(nèi)容的完整性和可讀性。

二、如何實現(xiàn)微信公眾號文章一鍵爬取并保存為PDF

圖片

前提準備

1.注冊一個個人微信公眾號用來獲取想要爬取的公眾號的長期地址

注冊方法:《https://kf.qq.com/faq/120911VrYVrA151009eIrYvy.html》

2.準備python環(huán)境并安裝相應的第三方庫

pip install requests # 這是爬蟲必備庫pip install pdfkit # 用于轉(zhuǎn)pdf的工具庫,有一個exe應用程序,# 可以后臺私信獲取pip install wechatsogou # 獲取每一篇文章的api接口pip uninstall Werkzeug # wechatsogou 依賴庫默認是3.0.3版本,但是會報各種錯誤pip3 install Werkzeug==0.11.15 # 安裝正確版本

3.下載軟件wkhtmltox 我會放到網(wǎng)盤里,后臺私信'pachong'獲取下載鏈接

圖片

批量獲取微信公眾號往期推送的URL、主題和時間

進入微信公眾號——左側(cè)草稿箱——新的創(chuàng)作—— 在圖文編輯頁中選擇超鏈接——搜索你想要爬取的微信公眾號名稱——F12找到請求鏈接——復制curl bash——在curlconvert網(wǎng)站中獲取請求地址和請求參數(shù)——解析獲取的結(jié)果,得到文章標題、文章時間和文章URL

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

import requestsimport jsonimport time

def crawl_all_article_url(page):

cookies = { 'appmsglist_action_3948617697': 'card', 'ua_id': 'cPS3GpAA01IEkaRJAAAAAIvDxBMaEL0YwwkNCjBwcAQ=', 'wxuin': '00617100352084', 'mm_lang': 'zh_CN', 'pac_uid': '0_6f1a31a07c4ab', 'iip': '0', '_qimei_uuid42': '17c1a0b23191007d54d4e4bc638bde211f0338f3bf', '_qimei_q36': '', '_qimei_h38': '8f95287254d4e4bc638bde2102000002517c1a', 'RK': 'jTHYN6T3Wp', 'ptcz': '7345f2bcdd021ede2b9e3b5ff3857a614e8f78a9ecdf01650aa9a3a225afd21e', 'pgv_pvid': '8536395802', 'ts_uid': '6019633394', '__root_domain_v': '.weixin.qq.com', '_qddaz': 'QD.243806759066417', 'qq_domain_video_guid_verify': '6e9c8245aad0e837', '_qimei_fingerprint': '36d8e5c4ef2b920cd2da41f5f01ca167', '_clck': '3902705164|1|fm1|0', 'uuid': '4f9478c2739d6acbb0878a2e7b6c7b35', 'rand_info': 'CAESINjnm2X0Xw6se5Kiw4ayZI9Ft4uFGZEaPM8tGhG8HhAl', 'slave_bizuin': '3902705164', 'data_bizuin': '3902705164', 'bizuin': '3902705164', 'data_ticket': 'DJqUc+FKg56UrvBm8mHaCSI28Je1eBjufcd/Bb1OMvhzcoXTTFoXRMrQIbNGjKtA', 'slave_sid': 'cG5yOWQzc0JrX3BNejZmMEhZWG5yN1JFZ1lzMzVWbW85aDZVRHpuSmw2UGVyaTczRFozdGFDMWpvd2ZQckhMbm5tX0pNc1FkcWNBX3VnbEFDZ29pZ3JLNW5hTEdqbm9ROXIyX01GMW5TeUYzQ2RhbUdoZmtldTJDS3N4eWlDYmR0MUd0ZUtqcmkxYjV0UGZj', 'slave_user': 'gh_19182aefb42a', 'xid': '081913df3456544c4dc84a51fd52778f', '_clsk': '121cm1q|1716519674628|15|1|mp.weixin.qq.com/weheat-agent/payload/record',}
headers = { 'accept': '*/*', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', # 'cookie': 'appmsglist_action_3948617697=card; ua_id=cPS3GpAA01IEkaRJAAAAAIvDxBMaEL0YwwkNCjBwcAQ=; wxuin=00617100352084; mm_lang=zh_CN; pac_uid=0_6f1a31a07c4ab; iip=0; _qimei_uuid42=17c1a0b23191007d54d4e4bc638bde211f0338f3bf; _qimei_q36=; _qimei_h38=8f95287254d4e4bc638bde2102000002517c1a; RK=jTHYN6T3Wp; ptcz=7345f2bcdd021ede2b9e3b5ff3857a614e8f78a9ecdf01650aa9a3a225afd21e; pgv_pvid=8536395802; ts_uid=6019633394; __root_domain_v=.weixin.qq.com; _qddaz=QD.243806759066417; qq_domain_video_guid_verify=6e9c8245aad0e837; _qimei_fingerprint=36d8e5c4ef2b920cd2da41f5f01ca167; _clck=3902705164|1|fm1|0; uuid=4f9478c2739d6acbb0878a2e7b6c7b35; rand_info=CAESINjnm2X0Xw6se5Kiw4ayZI9Ft4uFGZEaPM8tGhG8HhAl; slave_bizuin=3902705164; data_bizuin=3902705164; bizuin=3902705164; data_ticket=DJqUc+FKg56UrvBm8mHaCSI28Je1eBjufcd/Bb1OMvhzcoXTTFoXRMrQIbNGjKtA; slave_sid=cG5yOWQzc0JrX3BNejZmMEhZWG5yN1JFZ1lzMzVWbW85aDZVRHpuSmw2UGVyaTczRFozdGFDMWpvd2ZQckhMbm5tX0pNc1FkcWNBX3VnbEFDZ29pZ3JLNW5hTEdqbm9ROXIyX01GMW5TeUYzQ2RhbUdoZmtldTJDS3N4eWlDYmR0MUd0ZUtqcmkxYjV0UGZj; slave_user=gh_19182aefb42a; xid=081913df3456544c4dc84a51fd52778f; _clsk=121cm1q|1716519674628|15|1|mp.weixin.qq.com/weheat-agent/payload/record', 'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=77&createType=0&token=1635832127&lang=zh_CN&timestamp=1716519674285', 'sec-ch-ua': ''Google Chrome';v='123', 'Not:A-Brand';v='8', 'Chromium';v='123'', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': ''Windows'', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', 'x-requested-with': 'XMLHttpRequest', }
params = { 'sub': 'list', 'search_field': 'null', 'begin': f'{5*page}', 'count': '5', 'query': '', 'fakeid': 'MzkyMjY2MjMwOQ==', 'type': '101_1', 'free_publish_type': '1', 'sub_action': 'list_ex', 'token': '1635832127', 'lang': 'zh_CN', 'f': 'json', 'ajax': '1', } print(params) response = requests.get('https://mp.weixin.qq.com/cgi-bin/appmsgpublish', params=params, cookies=cookies, headers=headers)
resp = response.json()['publish_page'] # print(response.json()) resp = json.loads(resp)
print(len(resp['publish_list'])) for i in resp['publish_list']: article_links = [] art_info = json.loads(i['publish_info']) art_title = art_info['appmsgex'][0]['title'] art_time = art_info['appmsgex'][0]['create_time'] art_date = date = time.strftime('%Y-%m-%d', time.localtime(art_time)) art_link = art_info['appmsgex'][0]['link'] a_info = { 'url': art_link, 'title': art_title, 'time': art_date } article_links.append(a_info) return article_links
article_links= []for i in range(7): # 7是微信公眾號文章頁數(shù)
page_link = crawl_all_article_url(i) print(page_link) article_links = article_links + page_link time.sleep(5)
 

圖片

爬取所有文章并存儲為PDF格式

得到文章所有的url之后下一步就是爬取文章的具體內(nèi)容了,在這里要用到wechatsougo接口,直接pip install 安裝會存在依賴庫版本問題,主要是庫Werkzeug 的版本不對,總是報錯,我在這個地方卡了兩天,直到試到版本Werkzeug==0.11.15 才成功,需要你做的是:

pip uninstall Werkzeug # wechatsogou 依賴庫默認是3.0.3版本,但是會報各種錯誤pip3 install Werkzeug==0.11.15 # 安裝正確版本
import pdfkitimport wechatsogou

def link_to_pdf(url, title, date): ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3) # 調(diào)用接口 content_info = ws_api.get_article_content(url) # 請求鏈接 content = content_info['content_html'] # 轉(zhuǎn)換為html格式 # 將標題和文章內(nèi)容放入如下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} </body> </html>'''
# wkhtmltopdf可執(zhí)行程序路徑 path_wkthmltopdf = r'D:\software-dir\wkhtmltox\bin\wkhtmltopdf.exe' config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf) # 配置pdfkit pdfkit.from_string(html, f'{title} {date}.pdf', configuration=config) # 轉(zhuǎn)PDF,并按設(shè)定好的命名文件 print(f'{title}.pdf 已下載')    for link in article_links: url = link['url'] title = link['title'] date = link['time'] link_to_pdf(url, title, date)

圖片

圖片

圖片

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多