效果展示:

下载的PDF文件


PDF文件的内部展示

实现逻辑:

  1. 使用urllib爬取网页,获取该url的响应内容
  2. 利用BeautifulSoup选取响应中你需要的节点
  3. 拼接数据
  4. 保存HTML文件
  5. 使用wkhtmltopdf将HTML文件转换为PDF文件

相关代码:

from bs4 import BeautifulSoup #页面解析,获取数据
import urllib.request,urllib.error #指定URL,获取页面数据
import pdfkitdef main():#1.使用urllib爬取网页,获取该url的响应内容baseUrl = "https://blog.csdn.net/j1451284189/article/details/122420310"header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3776.400 QQBrowser/10.6.4212.400"}request = urllib.request.Request(url = url,headers=header)html = ""try:response = urllib.request.urlopen(request)html = response.read().decode("utf-8")except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reson"):print(e.reson)#2.利用BeautifulSoup选取响应中你需要的节点bs = BeautifulSoup(html,"html.parser")blog_detail = bs.find_all('div', class_="article_content")[0]file_name = bs.find_all('h1', class_="title-article")[0]file_name = file_name.text# 3.拼接数据html = \'''<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>{}</body></html>'''.format(blog_detail)# 4.保存HTML文件try:with open(r'.\blog\{}.html'.format(file_name), 'w', encoding='utf-8') as f:f.write(html)except Exception as e:print('文件名错误')# 5.使用wkhtmltopdf将HTML文件转换为PDF文件try:config = pdfkit.configuration(wkhtmltopdf=r'D:\LenovoSoftstore\wkhtmltopdf\bin\wkhtmltopdf.exe')pdfkit.from_file('.\\blog\{}.html'.format(file_name),r'.\blog\{}.pdf'.format(file_name),configuration=config)print(r'--文件下载成功:\blog\{}.pdf'.format(file_name))except Exception as e:print(r'--文件转换为PDF失败)

其他

​ 参考:https://blog.csdn.net/weixin_54733110/article/details/117884699(这篇文章讲得挺详细的,我的博客思路是参考本篇文章,我的前面的1-2步实现与这篇博客不同,最后下载下来的PDF文件效果一致)

​ 这个案例是爬取的一篇CSDN博客详情页的博客内容主体,能够成功的原因是因为这个网站是静态的,如果是那种动态的网页,这种方法是行不通的,当然只爬取CSDN博客是可以的。

超详细教程-爬取网站内容生成HTML文件/pdf文件相关推荐

  1. Python爬取网站小说保存txt,pdf文件

    # 爬取小说 http://www.hengyan.com/dir/9495.aspxfrom lxml.html import etree import requests import re imp ...

  2. python爬网站图片教程_Python超简单的爬取网站中图片

    1.首先导入相关库 importrequestsimportbs4importthreading #用于多线程爬虫,爬取速度快,可以完成多页爬取import os 2.使用bs4获取html中的内容 ...

  3. Python使用requests和BeautifulSoup爬取网站内容

    实现代码: import requests import re from bs4 import BeautifulSoup url='http://www.cntour.cn/'#这里是要爬取的网站 ...

  4. [超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理

    爬取豆瓣电影<大侦探皮卡丘>的影评,并做词云图和关键词绘图 第一步:找到评论的网页url. https://movie.douban.com/subject/26835471/commen ...

  5. python爬取图片-Python超简单的爬取网站中图片

    1.首先导入相关库 importrequestsimportbs4importthreading #用于多线程爬虫,爬取速度快,可以完成多页爬取import os 2.使用bs4获取html中的内容 ...

  6. java使用代理ip爬取网站内容

    在一些有反爬虫技术的网站中,检测到同一ip在短时间内多次访问的时候,可能就会禁掉这个ip. 上有政策,下有对策,为了应对这种情况,可以使用多个代理ip去爬取这个网站. java使用代理ip有两种方法: ...

  7. python爬取内容为空怎么剔除_用scrapy爬取网站内容时,如何忽略某些内容为空的值;...

    我爬取京东上所有手机信息时会碰到如下问题: 1.返回值过多,如下图片所示: 2.spider代码如下: -- coding: utf-8 -- import scrapy from scrapy.ht ...

  8. python学习(二)爬虫——爬取网站小说并保存为txt文件(二)

    前面我们已经完成了单章小说的爬取,现在我们来爬取整本小说 一:获取小说章节列表 在小说网站里没不 小说都有自己的章节目录,里面记录了所有的小说章节地址. 我们要想获取整本小说就要先得到小说的章节列表 ...

  9. python 爬取HTML内容并保存到txt文件内

    # @UpdateTime : 2020-12-08 16:53 # @Author : wz # @File : Get_WebDetails # @Software: PyCharm # @use ...

最新文章

  1. 项目背景怎么描述_课程游戏背景下幼儿户外活动的组织和实施 ——记岱山县课程项目实施组活动...
  2. 雅虎的Web优化最佳实践
  3. RemoteApp连接时所需要的证书
  4. VMware虚拟机磁盘操作占用过高问题(转:http://blog.csdn.net/New_When/article/details/73731149)
  5. JAVA国际化输出日期格式
  6. 四、构建Node Web程序
  7. netcore读取json文件_【NET Core】.NET Core中读取json配置文件
  8. 获得密钥_《哪吒》公映密钥延期一个月?关于“密钥延期”的全揭秘来了
  9. 安卓平台病毒猖獗 日感染15000台
  10. 那些年,备胎一起追的女神
  11. win2003 序列号
  12. R语言运行环境安装配置
  13. 经验分享:《节奏大师》UI优化历程
  14. 为什么越来越多的人想成为全栈工程师?
  15. Error: docker-ce conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64
  16. java之getResource方法
  17. FFmpeg是什么?
  18. 数据探索简介——质量分析、特征分析
  19. html5 单页动画,超炫的动画效果单页网站
  20. 鼠害对计算机硬件的影响,电脑机箱漏电对电脑硬件伤害大吗

热门文章

  1. 接上篇。隔了很久之后才更新arch,次日又发现两个问题。
  2. 猎豹移动发布Q3财报,净利润4.9亿 LiveMe完成剥离
  3. 医院管理系统项目功能实现(二)
  4. MySQL中 utf8 和 utf8mb4 的区别,以及 general_ci 、unicode_ci和unicode_520_ci的区别
  5. 1.ftp 数据采集模块
  6. 怎么计算公园客流量呢?
  7. culture defining_culture
  8. 又是模型评估?到底怎么评估?『附 AUC 评估的三计算方法』
  9. 读取txt文本数据,用区域生长方法分割求平面
  10. 谷歌开发客户工具总结