前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CSDN文章爬取前十博主文章并转换为md

CSDN文章爬取前十博主文章并转换为md

原创
作者头像
ruochen
修改于 2021-11-20 00:14:10
修改于 2021-11-20 00:14:10
5140
举报

#CSDN文章爬取前十博主文章并转换为md

CSDN爬取

python+selenium+parsel+tomd

tansty创建

代码地址:

**(1)CSS选择器** 需要先创建一个parsel.Selector对象 from parsel import Selector html 可以是请求某个网页的源码,也可以是html,xml格式的字符串 selector = Selector(html) 创建Selector对象之后就可以开始使用了 tags = selector.css(’.content’) 我们平时使用的css中,对某一个标签进行修饰时,使用的是 .class_attr 在这里也是如此 .content 就是指查询所有 class 为 content 的标签 查询的结果是一个特殊的对象,不能直接得到需要的数据 将css()函数查询到的结果转换为字符串或者列表,需要使用一个函数 • get() • getall()

**(2)属性提取**

代码语言:txt
AI代码解释
复制
href\_value = selector.css('a::attr(href)').get()   #提取href标签的值

title=page.css(".title-article::text").get()      #提取文本内容

****2.selenium**** **选择元素的方法** find_element_by_class_name:根据class定位

find_element_by_css_selector:根据css定位

find_element_by_id:根据id定位

find_element_by_link_text:根据链接的文本来定位

find_element_by_name:根据节点名定位

find_element_by_partial_link_text:根据链接的文本来定位,只要包含在整个文本中即可

find_element_by_tag_name:通过tag定位

find_element_by_xpath:使用Xpath进行定位

PS:把element改为elements会定位所有符合条件的元素,返回一个List

比如:find_elements_by_class_name

返回的是web_element对象

****3.tomd**** text=tomd.Tomd(content).markdown 将获取的文章转换为markdown形式

二、代码展示

**1.获取一篇文章**

代码语言:txt
AI代码解释
复制
#对一篇文章的爬取

def spider\_one\_csdn(title\_url):    # 目标文章的链接

    html=requests.get(url=title\_url,headers=head).text

    page=parsel.Selector(html)

    #创建解释器

    title=page.css(".title-article::text").get()

    title=filter\_str(title)

    print(title)

    content=page.css("article").get()

    content=re.sub("<a.\*?a>","",content)

    content = re.sub("<br>", "", content)

    #过滤a标签和br标签

    text=tomd.Tomd(content).markdown

    #转换为markdown 文件

    path = os.getcwd()  # 获取当前的目录路径

    file\_name = "./passage"

    final\_road = path + file\_name

    try:

        os.mkdir(final\_road)

        print('创建成功!')

    except:

        # print('目录已经存在或异常')

        pass

    with open(final\_road+r"./"+title+".md",mode="w",encoding="utf-8") as f:

        f.write("#"+title)

        f.write(text)

    time.sleep(1)

**2.获取博主所有文章**

代码语言:txt
AI代码解释
复制
def get\_article\_link(user):

    #获取某个博主的所有文章

    page=1

    while True:

        link = "https://blog.csdn.net/{}/article/list/{}".format(user, page)

        print("现在爬取第", page, "页")

        html = requests.get(url=link, headers=head).text

        cel = parsel.Selector(html)

        name\_link = cel.css(".article-list h4 a::attr(href) ").getall()

        if not name\_link:

            break

            #没有文章就退出

        for name in name\_link:

            spider\_one\_csdn(name)

        page+=1

    time.sleep(1)

**3.获取博主名字**

代码语言:txt
AI代码解释
复制
def nb\_bozhu():

    #获取前十博主的csdn名称

    driver=webdriver.Chrome()

    driver.implicitly\_wait(10)

    driver.get("https://blog.csdn.net/rank/writing\_rank")

    names=driver.find\_elements\_by\_xpath("//div[@class='rank-item-box d-flex align-items-center']//div[@class='name d-flex align-items-center']/h2/a")

    name\_list=[]

    for name in names:

        final\_name=name.get\_attribute("outerHTML")

        final\_name=re.sub('<a href="https://blog.csdn.net/',"",final\_name)

        final\_name=re.sub('">.\*</a>','',final\_name)

        name\_list.append(final\_name)

        print(final\_name)

    driver.quit()

    time.sleep(1)

    return name\_list

最终执行后会生成在程序所在目录下生成passage目录,里面有所有文章 <img src="https://img-blog.csdnimg.cn/20200902161039921.png#pic\_center" alt="在这里插入图片描述"> <img src="https://img-blog.csdnimg.cn/20200902161055550.png#pic\_center" alt="在这里插入图片描述">

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python爬取文章,并把HTML格式转换成PDF格式
欢迎加入白嫖Q群:1039649593【电子书、源码、课件、软件、资料】都会分享
松鼠爱吃饼干
2021/09/24
1.8K0
Python爬虫练习:爬取素材网站数据
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/10/09
1.5K0
Python爬虫练习:爬取素材网站数据
parsel类库使用
一、parsel类库使用 parsel这个库可以解析HTML和XML,并支持使用Xpath和CSS选择器对内容进行提取和修改,同时还融合了正则表达式的提取功能。parsel灵活且强大,同时也是python最流行的爬虫框架Scrapy的底层支持 # coding=utf-8 """ 作者:gaojs 功能: 新增功能: 日期:2022/3/25 19:35 """ import os.path import requests import parsel def get_
懿曲折扇情
2022/08/24
6650
不会吧?学过爬虫连这个网站都爬不了?那Python岂不是白学了
解析速度 bs4 解析速度会慢一些,如果你想要对于字符串数据内容,直接取值,只能正则表达式
松鼠爱吃饼干
2021/11/09
3500
不会吧?学过爬虫连这个网站都爬不了?那Python岂不是白学了
高质量“爬手”当然得爬一手“高质量”壁纸
所以啊,众所周知,我是一个喜欢高质量的博主,当然的整一手高质量壁纸,没有别的意思。
查理不是猹
2021/12/23
6970
高质量“爬手”当然得爬一手“高质量”壁纸
用Python爬取文章,并转PDF格式电子书
前言 前段时间,我在某个姓B的发了个视频,就是采集了自己的文章,转制成PDF格式的教程,CSDN居然给我举报了!!! 现在我来写一篇获取自己的文章,然后转制成PDF格式的电子式,看看能不能发出去 wkhtmltopdf [软件],这个是必学准备好的,不然这个案例是实现不出来的 获取文章内容代码 发送请求, 对于url地址发送请求 解析数据, 提取内容 保存数据, 先保存成html文件 再把html文件转成PDF 代码实现 请求数据 import requests # 数据请求模块 url = f'ht
松鼠爱吃饼干
2022/05/16
4640
用Python爬取文章,并转PDF格式电子书
爬虫案例1-爬取图片的三种方式之一:requests篇(1)
本文分享一个爬虫案例,使用requests库爬取彼岸网中的动物的图片,利用parsel库进行数据解析,并把这些照片保存到本地。后续也会接着分享使用第三方库selenium篇和DrissionPage篇爬取图片。
laity
2024/08/19
2500
爬虫案例1-爬取图片的三种方式之一:requests篇(1)
爬取某网站小姐姐壁纸
User-Agent在浏览器的F12 Network里面获取(里面找到headers,在最下面就有你自己浏览器的User-Agent参数)
Eternity
2022/08/24
7230
Python制作自动答题脚本,100%准确率,1秒10题提高效率
前言 环境使用 Python 3.8 Pycharm 模块使用 import requests ---> 数据请求模块 pip install requests import parsel ---> 数据解析模块 pip install parsel from selenium import webdriver ---> 自动测试模块 pip install selenium==3.141.0 本次案例代码实现思路: 打开考试网站 selenium --> 浏览器驱动 --> 操作浏览器 <模拟人的行为做
松鼠爱吃饼干
2022/12/05
2.7K0
Python制作自动答题脚本,100%准确率,1秒10题提高效率
Python爬虫实战:爬取链家网二手房数据
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/09/24
3.2K0
Python爬虫实战:爬取链家网二手房数据
爬取二手房案例--parsel教学篇(CSS选择器)
本文通过一个爬取二手房的案例,来分享另外一种解析数据的方式:解析神器python第三方库parsel库。之所以叫他解析神奇,是因为它支持三种解析方式。可以通过Xpath,CSS选择器和正则表达式来提取HTML或XML文档中的数据。
laity
2025/01/15
910
爬取二手房案例--parsel教学篇(CSS选择器)
用Python爬取COS网页全部图片
爬取http://www.win4000.com/meinvtag26_1.html的COS图片
天天Lotay
2022/12/01
1K0
用Python爬取COS网页全部图片
python3爬取樱花动漫的视频
昨天看了一个B站up的视频关于利用解析爬取指定电影并下载的视频,突发奇想爬一下我平时用的动漫网站的视频。于是去csdn上看了一个教程,稍作修改一下就能用了。这里放一下源码链接: https://blog.csdn.net/qq_44666628/article/details/101364802
行云博客
2022/05/10
1.2K0
Python爬取当当网书籍数据,并数据可视化展示
通过requests模块里面get请求方法,对于url地址发送请求,并且携带上面header请求头参数,最后用response变量接收返回数据
松鼠爱吃饼干
2022/01/24
4.1K1
Python爬取当当网书籍数据,并数据可视化展示
深圳的房价到底有多高?爬取Q房网数据,有钱人真多
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
松鼠爱吃饼干
2020/11/04
3900
深圳的房价到底有多高?爬取Q房网数据,有钱人真多
python爬取虎牙直播颜值区美女主播照片
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
python学习教程
2020/09/24
8940
python爬取虎牙直播颜值区美女主播照片
【python】使用Selenium获取(2023博客之星)的参赛文章
全栈若城
2024/02/29
1890
【python】使用Selenium获取(2023博客之星)的参赛文章
用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码)
用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码)
Java架构师必看
2021/07/19
7290
用python实现csdn博主全部博文下载,html转pdf,有了学习的电子书了。。。(附源码)
发现一个好看的手机壁纸网站,撸代码的手已经饥渴难耐了
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
松鼠爱吃饼干
2020/09/15
1K0
发现一个好看的手机壁纸网站,撸代码的手已经饥渴难耐了
7行代码爬取本博客所有文章
为了水篇博客,我也是尽力了。 如果报错,就新建一个文件夹abc import requests, parsel for i in range(1, 37): res = parsel.Selector(requests.get(f'https://pan.lanol.cn/page_{i}.html').text) titles = res.xpath("//h2[@class='entry-title']/a/text()").extract() for index, valu
SingYi
2022/07/13
3980
7行代码爬取本博客所有文章
推荐阅读
相关推荐
Python爬取文章,并把HTML格式转换成PDF格式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档