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

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

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

瀏覽:3日期: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 編程
相關文章:
主站蜘蛛池模板: 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 窖井盖锯圆机_锯圆机金刚石锯片-无锡茂达金刚石有限公司 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 开云(中国)Kaiyun·官方网站-登录入口| 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 青岛成人高考_山东成考报名网 | 打造全球沸石生态圈 - 国投盛世 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 济南拼接屏_山东液晶拼接屏_济南LED显示屏—维康国际官网 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 泰安塞纳春天装饰公司【网站】| 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 视频教程导航网_视频教程之家_视频教程大全_最新视频教程分享发布平台 | 石英粉,滑石粉厂家,山东滑石粉-莱州市向阳滑石粉有限公司 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 液晶拼接屏厂家_拼接屏品牌_拼接屏价格_监控大屏—北京维康 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 台式恒温摇床价格_大容量恒温摇床厂家-上海量壹科学仪器有限公司 |