超详细教程-爬取网站内容生成HTML文件/pdf文件
效果展示:
下载的PDF文件
PDF文件的内部展示
实现逻辑:
- 使用urllib爬取网页,获取该url的响应内容
- 利用BeautifulSoup选取响应中你需要的节点
- 拼接数据
- 保存HTML文件
- 使用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文件相关推荐
- Python爬取网站小说保存txt,pdf文件
# 爬取小说 http://www.hengyan.com/dir/9495.aspxfrom lxml.html import etree import requests import re imp ...
- python爬网站图片教程_Python超简单的爬取网站中图片
1.首先导入相关库 importrequestsimportbs4importthreading #用于多线程爬虫,爬取速度快,可以完成多页爬取import os 2.使用bs4获取html中的内容 ...
- Python使用requests和BeautifulSoup爬取网站内容
实现代码: import requests import re from bs4 import BeautifulSoup url='http://www.cntour.cn/'#这里是要爬取的网站 ...
- [超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理
爬取豆瓣电影<大侦探皮卡丘>的影评,并做词云图和关键词绘图 第一步:找到评论的网页url. https://movie.douban.com/subject/26835471/commen ...
- python爬取图片-Python超简单的爬取网站中图片
1.首先导入相关库 importrequestsimportbs4importthreading #用于多线程爬虫,爬取速度快,可以完成多页爬取import os 2.使用bs4获取html中的内容 ...
- java使用代理ip爬取网站内容
在一些有反爬虫技术的网站中,检测到同一ip在短时间内多次访问的时候,可能就会禁掉这个ip. 上有政策,下有对策,为了应对这种情况,可以使用多个代理ip去爬取这个网站. java使用代理ip有两种方法: ...
- python爬取内容为空怎么剔除_用scrapy爬取网站内容时,如何忽略某些内容为空的值;...
我爬取京东上所有手机信息时会碰到如下问题: 1.返回值过多,如下图片所示: 2.spider代码如下: -- coding: utf-8 -- import scrapy from scrapy.ht ...
- python学习(二)爬虫——爬取网站小说并保存为txt文件(二)
前面我们已经完成了单章小说的爬取,现在我们来爬取整本小说 一:获取小说章节列表 在小说网站里没不 小说都有自己的章节目录,里面记录了所有的小说章节地址. 我们要想获取整本小说就要先得到小说的章节列表 ...
- python 爬取HTML内容并保存到txt文件内
# @UpdateTime : 2020-12-08 16:53 # @Author : wz # @File : Get_WebDetails # @Software: PyCharm # @use ...
最新文章
- 项目背景怎么描述_课程游戏背景下幼儿户外活动的组织和实施 ——记岱山县课程项目实施组活动...
- 雅虎的Web优化最佳实践
- RemoteApp连接时所需要的证书
- VMware虚拟机磁盘操作占用过高问题(转:http://blog.csdn.net/New_When/article/details/73731149)
- JAVA国际化输出日期格式
- 四、构建Node Web程序
- netcore读取json文件_【NET Core】.NET Core中读取json配置文件
- 获得密钥_《哪吒》公映密钥延期一个月?关于“密钥延期”的全揭秘来了
- 安卓平台病毒猖獗 日感染15000台
- 那些年,备胎一起追的女神
- win2003 序列号
- R语言运行环境安装配置
- 经验分享:《节奏大师》UI优化历程
- 为什么越来越多的人想成为全栈工程师?
- Error: docker-ce conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64
- java之getResource方法
- FFmpeg是什么?
- 数据探索简介——质量分析、特征分析
- html5 单页动画,超炫的动画效果单页网站
- 鼠害对计算机硬件的影响,电脑机箱漏电对电脑硬件伤害大吗
热门文章
- 接上篇。隔了很久之后才更新arch,次日又发现两个问题。
- 猎豹移动发布Q3财报,净利润4.9亿 LiveMe完成剥离
- 医院管理系统项目功能实现(二)
- MySQL中 utf8 和 utf8mb4 的区别,以及 general_ci 、unicode_ci和unicode_520_ci的区别
- 1.ftp 数据采集模块
- 怎么计算公园客流量呢?
- culture defining_culture
- 又是模型评估?到底怎么评估?『附 AUC 评估的三计算方法』
- 读取txt文本数据,用区域生长方法分割求平面
- 谷歌开发客户工具总结