利用Python实现某个博主的全部博文下载,并保存成pdf格式呢

用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码) 用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码) 我们学习编程,在学习的时候,会有想把有用的知识点保存下来,我们可以把知识点的内容爬下来转变成pdf格式,方便我们拿手机可以闲时翻看,是很方便的 先来一个单个的博文下载转pdf格式的操作 python中将html转化为pdf的常用工具是Wkhtmltopdf工具包,在python环境下,pdfkit是这个工具包的封装类。如何使用pdfkit以及如何配置呢?分如下几个步骤。 下载wkhtmltopdf安装包,并且 阅读详情

文章目录

一、分析写代码的思路

二、代码步骤

1.导入需要的库

2.分析某个博客的主页

3.提取需要的数据

4.遍历博主的每个文章的网址

很多人学习python,不知道从何学起。

很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。

很多已经做案例的人,却不知道如何去学习更加高深的知识。

那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!??¤

QQ群:701698587

5.构造html网页

6.创建文件夹

7.保存html文件

8.将html文件转换成pdf文件

三. 总代码及结果

总结

一、分析写代码的思路

  1. 1.作者url+headers 
  2. 2.看作者所在的url是否是静态网页 
  3. 3.解析网页,获取作者的每个作品的url,及作者名字 
  4. 4.根据每个作品url继续访问,然后数据分析 
  5. 5.提取html文本字符串,标题 
  6. 6.创建文件夹 
  7. 7.保存html文本 
  8. 8.转换pdf文本

二、代码步骤
1.导入需要的库
代码如下(示例):

import requests,parsel,os,pdfkit
from lxml import etree


2.分析某个博客的主页
2.1.任意点进某个博主的网页,例如:“w要变强”的博主

2.2 点击开发者工具,刷新加载出博主主页的网址


2.3 右键点击查看网页源代码,发现博主主页为静态网页,这里我选择了xpath解析网页,当然还可以用css选择器,beautifulsoup等其他解析器

代码如下:

    #1.author_url+headers
    author_url=input('请输入csdn博主的url:')
    headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/87.0.4280.88 Safari/537.36'}
    response = requests.get(author_url,headers=headers).text
    # 2.作者所在的url是静态网页,xpath解析每个作品url
    html_xpath = etree.HTML(response)


 

3.提取需要的数据
3.1提取博客的名字和所有作品的url


代码如下:

 

   try:
        author_name = html_xpath.xpath(r'//*[@class="user-profile-head-name"]/div/text()')[0]
        # print(author_name)
        author_book_urls = html_xpath.xpath(r'//*[@class="blog-list-box"]/a/@href')
        # pprint(author_book_urls)
    except Exception as e:
        author_name = html_xpath.xpath(r'//*[@id="uid"]/span/text()')[0]
        author_book_urls = html_xpath.xpath(r'//*[@class="article-list"]/div/h4/a/@href')


元素的xpath路径可以直接copy的,对于这里用的异常处理我稍微解释下:其实还有少部分博主的主页是不同的,例如:

分析方法都一样,只是元素xpath路径不同而已,因此无论是哪种形式通过异常处理都能提取出作品urls及名字。 

4.遍历博主的每个文章的网址
4.1 每个作品网页也为静态网页,发送请求,获取响应并解析

代码如下:

    for author_book_url in author_book_urls:
        book_res = requests.get(author_book_url,headers = headers).text
        #4.将响应分别用xpath,css选择器解析
        html_book_xpath = etree.HTML(book_res)
        html_book_css = parsel.Selector(book_res)


4.2 css选择器提取文章的html文本,xpath提取文章标题


代码如下:

        book_title = html_book_xpath.xpath(r'//*[@id="articleContentId"]/text()')[0]
        html_book_content = html_book_css.css('#mainBox > main > div.blog-content-box').get()

5.构造html网页
​
​
   

    #5.拼接构造网页框架,加入文章html内容
        html =\
            '''
            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Title</title>
            </head>
            <body>
                {}
            </body>
            </html>

6.创建文件夹

        #6.创建博主文件夹
        if not os.path.exists(r'./{}'.format(author_name)):
            os.mkdir(r'./{}'.format(author_name))
7.保存html文件
        #6.保存html文本
        try:
            with open(r'./{}/{}.html'.format(author_name,book_title),'w',encoding='utf-8') as f:
                f.write(html)
            print('***{}.html文件下载成功****'.format(book_title))
        except Exception as e:
            continue


8.将html文件转换成pdf文件
转换文件物理条件:需要下载wkhtmltopdf.exe驱动文件喔!

​
        #8.转换pdf文本,导入pdfkit包
        try:
            config = pdfkit.configuration(
                wkhtmltopdf=r'D:\programs\wkhtmltopdf\bin\wkhtmltopdf.exe'
            )
            pdfkit.from_file(
                r'./{}/{}.html'.format(author_name,book_title),
                './{}/{}.pdf'.format(author_name,book_title),
                configuration=config
            )
            print(r'******{}.pdf文件保存成功******'.format(book_title))
        except Exception as e:
            continue


 
​
 

三. 总代码及结果

# !/usr/bin/env python
# -*- coding: utf-8 -*-
 
'''
    实现目标:爬某一博主的所有博客
    1.作者url+headers
    2.看作者所在的url是否是静态网页
    3.解析网页,获取作者的每个作品的url,及作者名字
    4.根据每个作品url继续访问,然后数据分析
    5.提取html文本,标题
    6.创建多级文件夹
    7.保存html文本
    8.转换pdf文本
'''
import requests,parsel,os,pdfkit
from lxml import etree
from pprint import pprint
def main():
    #1.author_url+headers
    author_url=input('请输入csdn博主的url:')
    headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/87.0.4280.88 Safari/537.36'}
    response = requests.get(author_url,headers=headers).text
    # 2.作者所在的url是静态网页,xpath解析每个文章url
    html_xpath = etree.HTML(response)
 
    try:
        author_name = html_xpath.xpath(r'//*[@class="user-profile-head-name"]/div/text()')[0]
        # print(author_name)
        author_book_urls = html_xpath.xpath(r'//*[@class="blog-list-box"]/a/@href')
        # print(author_book_urls)
    except Exception as e:
        author_name = html_xpath.xpath(r'//*[@id="uid"]/span/text()')[0]
        author_book_urls = html_xpath.xpath(r'//*[@class="article-list"]/div/h4/a/@href')
 
    # print(author_name,author_book_urls,sep='\n')
 
    #3.遍历循环每个作品网址,请求网页
    for author_book_url in author_book_urls:
        book_res = requests.get(author_book_url,headers = headers).text
        #4.将响应分别用xpath,css选择器解析
        html_book_xpath = etree.HTML(book_res)
        html_book_css = parsel.Selector(book_res)
        book_title = html_book_xpath.xpath(r'//*[@id="articleContentId"]/text()')[0]
        html_book_content = html_book_css.css('#mainBox > main > div.blog-content-box').get()
 
        #5.拼接构造网页框架,加入文章html内容
        html =\
            '''
            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Title</title>
            </head>
            <body>
                {}
            </body>
            </html>

 

GPT-4零代码可视化实战:Excel秒变专业PDF图表 数据可视化正从编程技能转向自然语言交互能力——当Matplotlib和Tableau的门槛让非技术人员望而却步,GPT-4通过语义解析与专用渲染服务的协同,实现了CSV/XLSX到可交付PDF报告的端到端生成。其核心原理并非AI自主绘图,而是对‘字段定义+图表意图+样式契约’的高精度翻译;技术价值在于将可视化决策权交还业务人员,大幅压缩从数据到洞察的路径;典型应用场景覆盖政务报表、教育学情分析、公共卫生监测等需快速产出领导可用材料的领域;本文聚焦GPT-4原生界面下真实可行的No-Code流程,涵盖数据净化 阅读详情

相关推荐

优快云助手:优快云文章下载助手,支持批量下载,支持保留专栏结构(markdown格式保存)

优快云助手:一键下载优快云博客:高效保存,随时阅读

XiaoqiangClub的博客 8106

如何下载优快云的文章?

原文链接:https://blog.youkuaiyun.com/weixin_44928129/article/details/122569120。版权声明:本文为优快云博主「星梦客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。1,进入到想要下载的文章界面,按功能键“F12”4,选择保存,就可以得到pdf格式的文件了。貌似pdf可以转word,各位自己测试吧!2,进入到控制台,输入如下代码。

weixin_60530860的博客 5365

二维码数据压缩实践 | 使用python对二维码数据进行压缩 |不乱码,支持中文

当前二维码的应用越来越广泛,包括疫情时期的健康码也是应用二维码的典型案例,最近需要通过一张二维码显示较多文本数据,也就是对二维码数据进行压缩,使用优快云搜索了半天居然没有能简单使用的代码,很多事例代码解决不了字符编码中文乱码等常见问题。因此只能自己研究了。本文的目标很明确,就是使用python,实现,代码简单实用,不乱码支持中文copy就能运行,压缩、生成、读取二维码一个py文件实现。

神奇代码在哪里 3355

优快云文章打包下载

优快云 没有提供文章批量导出功能,只有导入功能,所以我们可以用下述方式下载 优快云 上的文章并保存成 Markdown 格式。

会思想的苇草i的博客 6608

下载优快云文章方法[源码]

本文详细介绍了如何下载优快云上的文章。首先,进入目标文章页面并按F12键打开控制台;其次,在控制台中输入特定的JavaScript代码以移除页面上的无关元素;接着,按下回车键执行代码;最后,选择保存选项即可将文章保存为PDF格式。此外,作者还提到PDF文件可以转换为Word格式,但需要读者自行测试。该方法简单易行,适合需要保存优快云文章的用户。

优快云文章保存为PDF

优快云文章保存为PDF

如何下载csdn的文章并保存成pdf格式呢?并实现某个博主的全部博文下载?

如何下载csdn的文章并保存成pdf文件呢?并实现某个博主的全部文章下载?

weixin_47729434的博客 1万+

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9246

Python爬虫-优快云博文存为HTML/PDF文档

文章目录前言单篇保存脚本编写效果演示批量保存脚本编写效果演示总结 前言 写了 优快云 博客后,有没有担心过万一有一天博客“不见了”(你懂的)……你的心血不就白费了?还有看到喜欢的文章是不是想保存到本地、避免文章某一天就“没了”或者收费了?本文将学习记录下如何使用 Python 脚本将 优快云 博文自动以 HTML、PDF 两种格式的文件保存到本地。 单篇保存 先来看看如何对指定的单篇文章进行本地保存和格式转换。 脚本编写 1、脚本需要导入以下模块: import pdfkit import reques

道阻且长,行则将至 1375

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

保姆级教程:Unity编辑器汉化全流程(从下载到配置避坑指南)

本文提供Unity编辑器汉化的保姆级教程,涵盖从下载中文语言包到配置避坑的全流程。详细解析版本适配、文件系统交互及编辑器底层配置逻辑,帮助开发者高效完成汉化,解决常见报错问题,提升工作效率。

weixin_30825581的博客 155

【python爬虫】爬取优快云个页人主文章输出为htlm、pdf格式

需要下载wkhtmltopdf,html转换为pdf。代码:csdn.py。

urge的博客 241

sap销售发货的流程_SAP销售订单发货后如何实现发票的自动创建?

问SAP销售订单发货后如何实现发票的自动创建?答业务场景有些快消零售企业,SAP系统单据量大,单据金额少,一般在销售发货后即可确认收入。此时无需人工在系统内操作VF01或者VF04进行开票操作,可将该操作设置成后台作业进行自动批量开票,具体操作如下:1、定义任务:VF06输入完以上信息,点击保存进入以下界面:说明:当前日期的意思是“开票的日期”等于“系统电脑中的当前日期”当前日期+/-...

weixin_42358409的博客 3363

爬取csdn博客指定博主的文章转成csdn

爬取csdn博文

qq_42307546的博客 478

Python 上位机开发

首先,什么是上位机?上位机通常是指可以与下位机(如单片机、传感器等硬件设备)进行通信和交互,实现数据采集、控制指令发送以及数据处理和展示的计算机程序。 Python 作为一种高级编程语言,在开发上位机方面具有诸多优势。它拥有丰富的第三方库,使得开发过程变得相对简单和高效。

weixin_46807151的博客 4303

AD元件库构建及维护之——DbLib公共元件库的使用教程

AD元件库构建及维护之——DbLib元件库的使用教程

qq_43105486的博客 2万+

优快云 博客导出工具, 用于将 优快云 博客导出为 Markdown / PDF

优快云 博客导出工具, 用于将 优快云 博客导出为 Markdown / PDF 格式. 比较赞的地方在于, 它不仅支持一篇博文的导出, 还支持将某个类目下的博文批量导出, 以及将导出的多篇博文汇总为一篇, 以便用于全局搜索, 具体效果可以查看 .

m0_67623521的博客 3419

15 媒体存储的封装3

CMediaDisk类真正实现了录像文件的存储、查询和点播。存储录像文件时,需要满足以下的几个基本需求:1、异常断电不能丢失数据。2、录像既支持普通文件的查询方式,也支持时间轴的查询方式。3、修改设备时间时,不能够丢失已有录像和数据。向后修改时间时,如果当前时间已有录像,则不覆盖老数据;直到有未录像的时间段时,才再次写入新数据。4、支持删除媒体文件,也支持按时间段删除。5、支持标记录像文件、抓拍文件,也支持按时间段标记。6、支持自动覆盖最老的文件。7、支持多个设备、多路视频的录像存储。

hope_wisdom的技术博客 1123

我是如何将博客转成PDF的

前言 只有光头才能变强 之前有读者问过我:“3y你的博客有没有电子版的呀?我想要份电子版的”。我说:“没有啊,我没有弄过电子版的,我这边有个文章导航页面,你可以去文章导航去找来看呀”…然后就没有然后了。 最近也有个读者提过这个问题,然后这两天也没什么事做,所以打算折腾折腾,看看怎么把博客转成PDF。 一、准备工作 要将博客转成PDF,我首先想到的是能不能将markdown文件转成PDF(因为平...

3y 1850

嵌入式Linux&Android开发-环境搭建

目录 一、环境要求 二、相关软件&SDK下载 三、环境安装 3.1 VMware Worksation 3.2 Ubuntu1804 3.3 VSCode安装 3.4 Samba服务器搭建 一、环境要求 编译 Android 对机器的配置要求较高: 64 位 CPU 大于12GB 物理内存+交换内存(最好16GB以上) 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB, 如果要编译源码则还需要 150GB 的磁盘空间。 RK官方推荐使用 Ubuntu 16..

嵌入式成长手册 549

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: Python爬虫遇到验证码的几种处理方式,文章末尾有源码
下一篇: Python爬虫实战:采集淘宝商品信息并导入EXCEL表格
Python编程_可乐
博客等级 码龄6年 917粉丝 100原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值