文章爬取全搞定
关注 Python全栈开发
!
文章目录 __
前言
前期准备
第一个
第二个
实践部分
爬取文章内容
转换为 markdown
结果验证
总结
文章爬取全搞定
原创
Python全栈开发 2022-04-07 13:54:11 ©著作权
©著作权归作者所有:来自51CTO博客作者Python全栈开发的原创作品,请联系作者获取转载授权,否则将追究法律责任
前言
最近小编在整理之前写过的博客,在这个过程中遇到一个问题就是因为之前已经发表的博客部分没有在本地留存,所以我要搬迁这部分文章的时候就会遇到一个问题,手动复制富文本粘贴在
markdown
中是很麻烦的,会有图片丢失、格式杂乱等各种问题,忙活一圈下来还不如重写。为了彻底解决这个问题,我手动写了一个爬虫脚本,将那些没有源文件的博客批量爬取下来,然后自动转换成
markdown 格式的文档,然后就可以直接使用了。
前期准备
因为我们的脚本是基于 Python 的,所以首先确保您已经安装好了 Python@3 的环境,然后再手动安装这两个库就行。
第一个
安装:pip install newspaper3k
newspaper3k,它是一个专门用来爬取文章的库,其实爬取文章好多爬虫库比如 requests、requests-
html、httpx 等都可以实现,之所以选择
newspaper3k,就是因为其针对文章做了专门的适配。比如文章的作者,文章中的静态资源,发表时间等都可以直接爬取。
第二个
安装:pip install html2text
html2text,它是一个可以将 html 转换为文本格式的库,我们使用它就可以方便的将我们爬取的文章 html
内容直接转换为 markdown 格式的文本,然后将其保存到文件中即可。
通过以上思路,我们只需要将这个过程批量自动化,就可以很快地完成我们的任务。
实践部分
爬取文章内容
文章原始页面:
!文章爬取全搞定_html_02文章原始页面
代码
from newspaper import Article
# 计划爬取的文章
url = "https://www.u1s1.vip/docs/MacOS/MacOS-1"
# 实例化爬虫对象
article = Article(url,language='zh') # 如果我们想要获取文章的text内容,就需要指定语言为中文
# 将文章内容下载
article.download()
# 查看文章的html内容
print(article.html)
# 格式化内容,方便获取text
article.parse()
print(article.text)
代码运行结果
!文章爬取全搞定_html_03html内容!文章爬取全搞定_macos_04text内容
转换为 markdown
显然,上面爬取的文本无法满足我们的需求,所以我们需要在上面的基础上增加转换为 markdown 的步骤。
代码
from newspaper import Article
import html2text as ht
url = "https://www.u1s1.vip/docs/MacOS/MacOS-1"
article = Article(url)
article.download()
# 获取html内容
html = article.html
# 实例化html2text对象
runner = ht.HTML2Text()
# 转化html为markdown
res = runner.handle(html)
# print(res)
# 将markdown内容保存到res.md
with open ('res.md',mode='w') as f:
f.write(res)
代码执行结果
!文章爬取全搞定_macos_05UnicodeEncodeError
为什么会报
UnicodeEncodeError
呢?因为啊我们在文件写入时涉及到了中文,所以需要声明编码格式为utf-8即可。
修改后的代码
from newspaper import Article
import html2text as ht
url = "https://www.u1s1.vip/docs/MacOS/MacOS-1"
article = Article(url)
article.download()
# 获取html内容
html = article.html
# 实例化html2text对象
runner = ht.HTML2Text()
# 转化html为markdown
res = runner.handle(html)
# print(res)
# 将markdown内容保存到res.md
with open ('res.md',mode='w',encoding='utf-8') as f:
f.write(res)
代码执行结果
!文章爬取全搞定_macos_06在当前路径下生成了res.md
结果验证
我们打开 res.md 查看一下
!文章爬取全搞定_实例化_07生成的md内容
我们可以看到,markdown 内容基本和原文章一致,只是多了部分网站的 header 和
footer,我们将其删掉即可。虽然有很多 markdown 语法不规范的黄色警告,但是并不影响内容的展现,我们预览一下看看效果。
!文章爬取全搞定_html_08预览效果
总结
通过以上经历,我们可以确定,这种方式可以完美满足我们的需求。原文章的内容,格式,代码,图床链接等都可以全部获取到。
如果需要处理很多的文章,我们只需要将其存到一个列表中,然后对其循环处理即可。
完
- **赞 **
- **收藏 **
- **评论 **
- 分享
- 举报
下一篇:【年终答谢】送一台小熊咖啡机
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
全部评论 ( **) 最热 最新
相关文章
- [ 爬取煎蛋网文章
import os import requests from bs4 import BeautifulSoup r1 = requests.get(
url=’http://jandan.net/‘, # 浏览器的信息 headers={ ‘user-agent’:’Mozilla/5.0
(Windows NT 6.1; WOW64) AppleW…
](https://blog.51cto.com/aaronthon/5609069)
html chrome 数据
- [ 爬取CSDN文章代码
【代码】爬取CSDN文章代码。
](https://blog.51cto.com/u_14013325/5888305)
javascript 开发语言 ecmascript html ide
- [ java公众号文章爬取
Java公众号文章爬取教程## 1.
简介在本教程中,我将教会你如何使用Java来实现公众号文章爬取功能。公众号文章爬取是指通过网络爬虫技术,将指定公众号的文章内容爬取下来并保存到本地或数据库中。这样我们就可以方便地对公众号的文章进行分析、统计等操作。##
- 整体流程下面是实现公众号文章爬取的整体流程,我们可以通过一个表格来展示每个步骤:| 步骤 | 描述 || —-
](https://blog.51cto.com/u_16175455/7237712)
公众号 HTTP java
- [ Python 爬虫爬取微信文章
Python 微信爬虫爬取文章
](https://blog.51cto.com/superleedo/2124494)
微信爬虫 爬取 微信文章
- [ 爬取抽屉热搜榜文章
import os import requests from bs4 import BeautifulSoup # 登陆, 模仿用户浏览器 r1 =
requests.get( # 要爬取的网页 url=’https://dig.chouti.com/‘, # 浏览器的信息 headers={
‘user-agent’:’Mozilla/5.0 (…
](https://blog.51cto.com/aaronthon/5609074)
html chrome safari
- [ 爬取微信公众号文章
新增了GUI界面,效果如图**试了多种方法,发现还是使
](https://blog.51cto.com/xfxuezhang/5857943)
微信公众号 Python 爬虫 自动化 抓包
- [ python 爬取菜谱文章和图片
Python爬取菜谱文章和图片教程## 一、流程概述为了帮助刚入行的小白实现“Python爬取菜谱文章和图片”的功能,以下是整个流程的概述:| 步骤 |
描述 || —— | —— || 1 | 确定目标网站 || 2 | 分析网站结构 || 3 | 编写爬虫代码 || 4 | 解析网页内容 || 5
| 下载文章和图片 |接下来,我们将逐步介绍每个步骤需要
](https://blog.51cto.com/u_16213315/7115827)
html 网页内容 HTML
- [ python爬取知乎会员文章
Python爬取知乎会员文章## 1.
简介知乎作为一个知识分享社区,拥有大量优质的文章资源。但是,大部分知乎文章都是只有会员才能查看的。如果我们想要爬取这些会员文章,就需要使用Python来实现。本文将介绍如何使用Python爬取知乎会员文章,并附上相应的代码示例。##
- 准备工作在开始之前,我们需要安装一些必要的库,包括
requests、`beautifulsoup
](https://blog.51cto.com/u_16213463/7730128)
知乎 Python xml
- [ 使用Python爬取公号文章(上)
01抓取目标场景:有时候我们想爬取某个大V的发布的全部的文章进行学习或者分析。这个爬虫任务我们需要借助「Charles」这个抓包工具,设置好手机代理IP去请求某个页面,通过分析,模拟请求,获取到实际的数据。我们要爬取文章的作者、文章标题、封面图、推送时间、文件内容、阅读量、点赞数、评论数、文章实际链接等数据,最后要把数据存储到「MongoDB」数据库中。02准备工作首先,在PC上下载Charles
](https://blog.51cto.com/u_15023272/2559176)
Java
- [ python 爬取注释 python 爬取文章
本文将实现可以抓取博客文章列表的定向爬虫。定向爬虫的基本实现原理与全网爬虫类似,都需要分析HTML代码,只是定向爬虫可能并不会对每一个获取的URL对应的页面进行分析,即使分析,可能也不会继续从该页面提取更多的URL,或者会判断域名,例如,只抓取包含特定域名的URL对应的页面。
这个例子抓取博客园()首页的博客标题和URL,并将博客标题和URL输出到Console。编写定向爬虫的第一步就是分析相关页
](https://blog.51cto.com/u_15192/7597868)
python 爬取注释 python js 编程语言 java
- [ Python 爬取公众号照片 python 爬取公众号文章
背景:利用代理池爬取微信公众号文章并保存架构:巨坑:实例的名不可于类的名重复。第一:请求及请求队列1、为什么要创建weixinrequest()?
因为Sogou微信搜索反爬虫能力强,response.status_code容易出现302,也就是需要输入验证码。当然解决这个问题有两个途径,一个是调用验证码自动识别,另一个是将该302连接重新放回请求队列,更好
](https://blog.51cto.com/u_16213642/7125038)
Python 爬取公众号照片 redis Redis sql
- [ bs4爬取 python bs4爬取文章
使用流程: -导包:from bs4 import BeautifulSoup -
使用方式:可以将一个html文档,转化为BeautifulSoup对象,然后通过对象的方法或属性去查找指定的节点内容。 (1)转化本地文件: - soup
= BeautifulSoup(open(‘本地文件’),‘lxml’) (2)转化网络文件(与requests配合): -
](https://blog.51cto.com/u_87851/6755162)
bs4爬取 python 选择器 a标签 xml
- [ 爬取本blog所有文章链接
刚接触python,试一下爬虫。拿自己的Blog开刀import requestsfrom bs4 import BeautifulSoupimport
pprinturl = “https://www.cnblogs.com/zyqgold/"#爬取分页def download_all_htmls():
htmls = [] for i in range(7):
](https://blog.51cto.com/u_15152252/2682016)
爬取
- [ Python怎么爬取Javascript Python怎么爬取知乎的文章
简介知乎的网站是比较好爬的,没有复杂的反爬手段,适合初学爬虫的人作为练习
因为刚刚入门python,所以只是先把知乎上热门问题的一些主要信息保存到数据库中,待以后使用这些信息进行数据分析,爬取的网页链接是赞同超过1000的回答网页分析1.分析网站的页面结构
界面分析 2.分析网站的元素选择页面中需要爬取的内容对应的元素,分析特征(class,id等),稍后使用
](https://blog.51cto.com/u_16213575/7108753)
数据库 Web html
- [ python3 爬取知乎 python爬取知乎文章
目的:学习笔记目标网站:https://www.zhihu.com1.首先我们打开目标网站:2.首先我们试着爬取下来一篇文章的评论,通过搜索发现在
response里面我们并没有匹配到评论,说明评论是动态加载的。3.此时我们清空请求,收起评论,再次打开评论4.完成上面操作后,我们选择XHR,可以发现点击评论的时候发送了3个请求。5.我们点击带comments的请求,然后在response里搜索可以
](https://blog.51cto.com/u_13527/6623925)
python3 爬取知乎 json 3c 5e
- [ 如何用python爬取知乎 python爬取知乎文章
根据该过程,爬虫过程需要分为两步:1、通过关键词(Java)搜索问题,得到url=https://www.zhihu.com/search?type=content&q=java,根据该url爬取该页面下所有的问题及其对应的问题id;2、根据第一步得到的问题及其id,得到url=https://www.zhihu.com/question/31437847,爬取该url页面下所有的网友回答
](https://blog.51cto.com/u_16099240/6983601)
如何用python爬取知乎 搜索 知乎 python
- [ Python公众号爬取 如何用python爬取公众号文章
python爬取微信公众号文章哈喽,大家好呀,我是滑稽君。本期我们想要爬取微信公众号的文章内容。首先你想要有自己的微信公众号来登录平台。在个人编辑发布文章的界面,我们能使用上方的超链接功能来搜索文章,可以按关键字,也可以按照公众号,我们选择后者。
视频讲解:我们打开开发者模式。选择netword点击下一页就会刷新出数据,点击蓝色部分‘appmsg’。右边显示的url就是我们的json数据页面。
](https://blog.51cto.com/u_16099255/7077570)
Python公众号爬取 复制cookie登陆 json 超链接 微信公众号
- [ Python 爬取今日头条 爬虫爬取今日头条文章
首先,安装好我们爬网所需的开发环境,我的开发环境如下:win7 x64中文版Visual Studio Code
1.27.2(用于作为Python的编辑器,通过插件可以支持多种语言的开发)Anaconda3.5.2-64bit(选择Python3版本)本系列演示过程所用到的python环境以及第三方库:
python 3.6.5 Anaconda预安装selenium 3.14.0
](https://blog.51cto.com/u_14152/7395332)
Python 爬取今日头条 爬虫 java python 今日头条
- [ python爬取文章保存为pdf 用python爬取pdf数据
前言?本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。基本开发环境?Python
3.6Pycharmwkhtmltopdf相关模块的使用?pdfkitrequestsparsel安装Python并添加到环境变量,pip安装需要的相关模块即可。一、?目标需求
将CSDN这上面的文章内容爬取保存下来,保存成PDF的格式。二、?网页数据分析如果想要把
](https://blog.51cto.com/u_75269/7598638)
python爬取文章保存为pdf python html Python css
- [ 深度学习图像增强需要数据集吗 图像增强算法
一、图像增强算法介绍图像增强算法常见于对图像的亮度、对比度、饱和度、色调等进行调节,增加其清晰度,减少噪点等。图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则为高通滤波器,当然增强一副图像是为最后获取图像有用信息服务为主。一般的算法流程可为:图像去燥、增加清晰度(对比度)、灰度化或者获取图像边缘特征或者对图像进行卷积、二值化等,上述四个步骤往往可以通过不同的
](https://blog.51cto.com/u_16099189/7782599)
深度学习图像增强需要数据集吗 灰度 图像增强 直方图均衡化
[ 物流项目java 物流项目管理案例分析
1.中铁联合物流简介36家路内股东和2家路外股东共同出资组建的有限责任公司,股东单位涉及全路的14个铁路局。从2001年11月正式开始营业。
公司业务经营领域涉及国际国内货运代理、进出口、仓储运输、物流综合服务以及公共营销等。经营网络遍布全国除西藏、海南、台湾以外的各省、自治区和直辖市。“六个统一”(
](https://blog.51cto.com/u_16213604/7792709)
物流项目java 信息系统 IT 管理信息系统
- [ mongodb 集群模式 oplog mongo集群搭建
一.主从搭建1.我在两台机器上操作(172.30.50.179,180 )1.cd /usr/local/app/mongodb-4.0.52.mkdir
-p data/{37017,37018}3.mkdir -p config log4.添加配置文件 vim
config/config1-37017.conf 180的机器
](https://blog.51cto.com/u_16213702/7799878)
mongodb 集群模式 oplog mongodb集群搭建 mongodb 数据 重启
- [ 剑指offerpython版pdf 剑指offer python下
文章目录7/307/31 and 8/18/28/38/48/58.68.78/108/11 7/30用两个栈实现队列题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路
队列的Push就是直接进栈;Pop:节点进入stack1,然后再stack1的元素pop出,push到stack2中,stack2再pop出来就是先进先出的顺序了。
步骤:判断
](https://blog.51cto.com/u_14405/7799969)
剑指offerpython版pdf 字符串 压栈 出栈
- [ 用python做模型 python建立模型
正如matth所指出的,最干净的方法可能是使用模板引擎。但首先,简单的python字符串格式也可以。在但是,问题或多或少是复杂的,这取决于您是要更新现有模型的一部分,还是只是从头开始创建新模型。在创建新模型下面是一个简单的Modelica模型的示例,如果参数、变量和方程已经在Python中可用,那么可以如何从这些参数、变量和方程中创建它们:name
= ‘myModel’parameters =
](https://blog.51cto.com/u_16213603/7800853)
用python做模型 python中mopn Modelica python Real
关注
分类列表 更多
近期文章
- 1.可视化人员轨迹实时定位系统源码
- 2.[k8s] Kubernetes Architecture
- 3.2023云栖大会即将开幕,速来免费预约!
- 4.发现App.config文件和Settings.settings.cs文件的内容有重复。
- 5.概率分析和随机化算法
文章目录
前言
前期准备
第一个
第二个
实践部分
爬取文章内容
转换为 markdown
结果验证
总结
每日签到
举报文章
请选择举报类型
内容侵权 涉嫌营销 内容抄袭 违法信息 其他
具体原因
包含不真实信息 涉及个人隐私
原文链接(必填)
补充说明
0/200
上传截图
__
格式支持JPEG/PNG/JPG,图片不超过1.9M
__
取消 确认
已经收到您得举报信息,我们会尽快审核
- **赞 **
- **收藏 **
- **评论 **
- 分享
__
如有误判或任何疑问,可联系 申诉及反馈。
我知道了
公众号矩阵
移动端
51CTO
开源基础软件社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
开源基础软件社区订阅号
51CTO学堂APP
51CTO学堂企业版APP
开源基础软件社区视频号
51CTO博客
搜索历史 __清空
热门搜索
查看【 】的结果
Copyright (C) 2005-2023 51CTO.COM 版权所有 京ICP证060544号
关于我们
[官方博客](https://blog.51cto.com/51ctoblog) | [全部文章](https://blog.51cto.com/nav) | [热门标签](https://blog.51cto.com/topic/all) | [班级博客](https://blog.51cto.com/class-blog/index)
友情链接
[开源基础软件社区](https://ost.51cto.com/?utm_source=blogsitemap) | [51CTO学堂](https://edu.51cto.com/)