用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码)

我们学习编程,在学习的时候,会有想把有用的知识点保存下来,我们可以把知识点的内容爬下来转变成pdf格式,方便我们拿手机可以闲时翻看,是很方便的

先来一个单个的博文下载转pdf格式的操作

私信小编01即可获取大量Python学习资源

python中将html转化为pdf的常用工具是Wkhtmltopdf工具包,在python环境下,pdfkit是这个工具包的封装类。如何使用pdfkit以及如何配置呢?分如下几个步骤。

下载wkhtmltopdf安装包,并且安装到电脑上。

我下的是这个版本,安装的时候要记住路径,之后调用要用到路径

开发工具

python
pycharm
pdfkit (pip install pdfkit)
lxml

今天目标:博主的全部博文下载,并且转pdf格式保存

基本思路:
1、url + headers
2、分析网页: CSDN网页是静态网页, 请求获取网页源代码
3、lxml解析获取boke_urls, author_name
4、循环遍历,得到 boke_url

5、xpath解析获取文件名
6、css选择器获取标签文本的主体
7、构造拼接html文件
8、保存html文件
9、文件的转换

分析网页: CSDN网页是静态网页, 请求获取网页源代码

start_url =“”

为例
确定网址为同步加载

css选择器获取标签文本的主体为代码要点部分
css语法部分

html_css = (响应的数据) html_content = ('要获取的部分').get()

点开博主的一篇博文打开开发者工具

# css选择器获取标签文本的主体 html_css = (response_2) html_content = ('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 = (wkhtmltopdf=r'这里为下载wk的路径') ( 第一个参数要转变的html文件, 第二个参数转变后的pdf文件, configuration=config ) # 上面这样写清楚一点,也可以直接 ( 第一个参数要转变的html文件, 第二个参数转变后的pdf文件, configuration=(wkhtmltopdf=r'这里为下载wk的路径') )

源码展示:

import parsel, os, pdfkit from lxml import etree from requests_html import HTMLSession session = HTMLSession() def main(): # 1、url + headers start_url = input(r'请输入csdn博主的地址:') headers = { 'User-Agent': 'Mozilla (Windows NT 10.0; Win64; x64) AppleWebKi ' '(KHTML, like Gecko) Chrome Safari; } # 2、分析网页: CSDN网页是静态网页, 请求获取网页源代码 response_1 = (start_url, headers=headers).text # 3、解析获取boke_urls, author_name html_xpath_1 = e(response_1) author_name = (r'//*[@id="floor-user-profile_485"]/div/div[1]/div[2]/div[2]/div[1]/div[1]/text()')[0] boke_urls = (r'//article[@class="blog-list-box"]/a/@href') # 4、循环遍历,得到 boke_url for boke_url in boke_urls: # 5、请求 response_2 = (boke_url, headers=headers).text # 6、xpath解析获取文件名 html_xpath_2 = e(response_2) file_name = (r'//h1[@id="articleContentId"]/text()')[0] # 7、css选择器获取标签文本的主体 html_css = (response_2) html_content = ('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.(r'{}-html'.format(author_name)): os.mkdir(r'{}-html'.format(author_name)) if not os.(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 = (wkhtmltopdf=r'C:\Program Files\wkhtmltopdf\bin\wk') ( '{}-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: continue if __name__ == '__main__': main()

代码操作:

1.《如何制作电子书 如何制作电子版?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《如何制作电子书 如何制作电子版?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3232150.html