电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python實現csdn全部博文下載并轉PDF

瀏覽:6日期:2022-06-16 18:21:40

我們學習編程,在學習的時候,會有想把有用的知識點保存下來,我們可以把知識點的內容爬下來轉變成pdf格式,方便我們拿手機可以閑時翻看,是很方便的

先來一個單個的博文下載轉pdf格式的操作

python實現csdn全部博文下載并轉PDF

python中將html轉化為pdf的常用工具是Wkhtmltopdf工具包,在python環境下,pdfkit是這個工具包的封裝類。如何使用pdfkit以及如何配置呢?分如下幾個步驟。

下載wkhtmltopdf安裝包,并且安裝到電腦上。下載地址:https://wkhtmltopdf.org/downloads.html

python實現csdn全部博文下載并轉PDF

我下的是這個版本,安裝的時候要記住路徑,之后調用要用到路徑

python實現csdn全部博文下載并轉PDF

開發工具 python pycharm pdfkit (pip install pdfkit) lxml

今天目標:博主的全部博文下載,并且轉pdf格式保存

基本思路:

1、url + headers2、分析網頁: CSDN網頁是靜態網頁, 請求獲取網頁源代碼3、lxml解析獲取boke_urls, author_name4、循環遍歷,得到 boke_url5、xpath解析獲取文件名6、css選擇器獲取標簽文本的主體7、構造拼接html文件8、保存html文件9、文件的轉換

分析網頁: CSDN網頁是靜態網頁, 請求獲取網頁源代碼start_url =“https://i1bit.blog.csdn.net/” 為例確定網址為同步加載

python實現csdn全部博文下載并轉PDF

css選擇器獲取標簽文本的主體為代碼要點部分css語法部分

# css選擇器獲取標簽文本的主體html_css = parsel.Selector(response_2)html_content = html_css.css(’article’).get()# 構造拼接html文件html = ’’’<!DOCTYPE html> <html lang='en'> <head><meta charset='UTF-8'><title>Title</title> </head> <body>{} </body></html> ’’’.format(html_content)

點開博主的一篇博文打開開發者工具

python實現csdn全部博文下載并轉PDF

# css選擇器獲取標簽文本的主體html_css = parsel.Selector(response_2)html_content = html_css.css(’article’).get()# 構造拼接html文件html = ’’’<!DOCTYPE html> <html lang='en'> <head><meta charset='UTF-8'><title>Title</title> </head> <body>{} </body></html> ’’’.format(html_content)

文件的轉換

config = pdfkit.configuration(wkhtmltopdf=r’這里為下載wkhtmltopdf.exe的路徑’) pdfkit.from_file(第一個參數要轉變的html文件,第二個參數轉變后的pdf文件,configuration=config ) # 上面這樣寫清楚一點,也可以直接 pdfkit.from_file(第一個參數要轉變的html文件,第二個參數轉變后的pdf文件, configuration=pdfkit.configuration(wkhtmltopdf=r’這里為下載wkhtmltopdf.exe的路徑’) )

源碼展示:

import parsel, os, pdfkitfrom lxml import etreefrom requests_html import HTMLSessionsession = HTMLSession()def main(): # 1、url + headers start_url = input(r’請輸入csdn博主的地址:’) headers = {’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ’ ’(KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36’ } # 2、分析網頁: CSDN網頁是靜態網頁, 請求獲取網頁源代碼 response_1 = session.get(start_url, headers=headers).text # 3、解析獲取boke_urls, author_name html_xpath_1 = etree.HTML(response_1) author_name = html_xpath_1.xpath(r’//*[@id='floor-user-profile_485']/div/div[1]/div[2]/div[2]/div[1]/div[1]/text()’)[0] boke_urls = html_xpath_1.xpath(r’//article[@class='blog-list-box']/a/@href’) # 4、循環遍歷,得到 boke_url for boke_url in boke_urls:# 5、請求response_2 = session.get(boke_url, headers=headers).text# 6、xpath解析獲取文件名html_xpath_2 = etree.HTML(response_2)file_name = html_xpath_2.xpath(r’//h1[@id='articleContentId']/text()’)[0]# 7、css選擇器獲取標簽文本的主體html_css = parsel.Selector(response_2)html_content = html_css.css(’article’).get()# 8、構造拼接html文件html = ’’’<!DOCTYPE html> <html lang='en'> <head><meta charset='UTF-8'><title>Title</title> </head> <body>{} </body></html> ’’’.format(html_content)# 9、創建兩個文件夾, 一個用來保存html 一個用來保存pdf文件if not os.path.exists(r’{}-html’.format(author_name)): os.mkdir(r’{}-html’.format(author_name))if not os.path.exists(r’{}-pdf’.format(author_name)): os.mkdir(r’{}-pdf’.format(author_name))# 10、保存html文件try: with open(r’{}-html/{}.html’.format(author_name, file_name), ’w’, encoding=’utf-8’) as f:f.write(html)except Exception as e: print(’文件名錯誤’)# 11、文件的轉換try: config = pdfkit.configuration(wkhtmltopdf=r’C:Program Fileswkhtmltopdfbinwkhtmltopdf.exe’) pdfkit.from_file(’{}-html/{}.html’.format(author_name, file_name),’{}-pdf/{}.pdf’.format(author_name, file_name),configuration=config ) a = print(r’--文件下載成功:{}.pdf’.format(file_name))except Exception as e: continueif __name__ == ’__main__’: main()

代碼操作:

python實現csdn全部博文下載并轉PDF

到此這篇關于python實現csdn全部博文下載并轉PDF的文章就介紹到這了,更多相關python 博文下載并轉PDF內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 苏州柯瑞德货架-仓库自动化改造解决方案| 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 废水处理-废气处理-工业废水处理-工业废气处理工程-深圳丰绿环保废气处理公司 | 电动葫芦|手拉葫芦|环链电动葫芦|微型电动葫芦-北京市凌鹰起重机械有限公司 | 江苏皓越真空设备有限公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 仪器仪表网 - 永久免费的b2b电子商务平台 | 高低温老化试验机-步入式/低温恒温恒湿试验机-百科 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 净水器代理,净水器招商,净水器加盟-FineSky德国法兹全屋净水 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 行星齿轮减速机,减速机厂家,山东减速机-淄博兴江机械制造 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 陕西华春网络科技股份有限公司| 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 心得体会网_心得体会格式范文模板 | 防火门-专业生产甲级不锈钢钢质防火门厂家资质齐全-广东恒磊安防设备有限公司 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 范秘书_懂你的范文小秘书 | 展厅装修公司|企业展厅设计|展厅制作|展厅搭建—广州展厅装饰公司 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 淘趣英语网 - 在线英语学习,零基础英语学习网站|