首页 > 编程语言 >python博客园下载所有文章保存为Mardown

python博客园下载所有文章保存为Mardown

时间:2023-10-26 13:33:04浏览次数:31  
标签:session cookies python text 博客园 headers Mardown import page

简易代码

import requests
from bs4 import BeautifulSoup
import re
import html2text
import os

session = requests.session()

cookies = {
  #换成自己的cookies
}

headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive',
    'Pragma': 'no-cache',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'none',
    'Sec-Fetch-User': '?1',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
    'sec-ch-ua': '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
}
total_page=31 # 总页数加1
name="angelyan" # 博客名字
for page in range(1, total_page):
    params = {
        'page': page,
    }
    response = session.get('https://www.cnblogs.com/%s'%name, cookies=cookies, headers=headers, params=params)
    soup = BeautifulSoup(response.text, "lxml")
    days = soup.find_all("div", class_="day")
    for d in days:
        a_url = d.find("a", class_=re.compile('^postTitle2')).attrs["href"]
        print(a_url)
        res = session.get(a_url, cookies=cookies, headers=headers)
        sup = BeautifulSoup(res.text, "lxml")
        try:
            title = sup.find("h1", class_="postTitle").text.strip()
        except:
            continue
        html = sup.find("div", class_="post")
        print(title)
        markdown = html2text.html2text(str(html))
        # print(markdown)
        with open(os.path.join(r"./博客园", "%s.md" % title), "w", encoding="utf-8") as f:
            f.write(markdown)

 

标签:session,cookies,python,text,博客园,headers,Mardown,import,page
From: https://www.cnblogs.com/angelyan/p/17789203.html

相关文章

  • python 多线程的使用,爬取新发地菜价
    今天使用多线程来获取200页数据公众号回复 菜价 获取源码目标网站:#新发地菜价http://www.xinfadi.com.cn/priceDetail.html打开网站,发现是异步加载,然后点击xhr可以看到,数据就在这里然后我们点击负载,观察发现20代表每页展示多少条数据,不用管current则是代表页数点击标头,可以看......
  • python读取和写入txt等文件,文件打开模式,文件对象常用函数
     ......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-23-处理select下拉框-下篇
    1.简介上一篇中宏哥主要讲解和分享了一下,我们常见或者传统的select下拉框的操作,但是近几年又出现了了一种新的select下拉框,其和我们传统的select下拉框完全不一样,那么我们如何使用playwright对其进行定位操作了。宏哥今天就来讲解和分享一下仅供大家参考,不喜勿喷。2.新的select......
  • Python requirements.txt安装用法介绍
    一、什么是requirements.txt文件在Python项目开发中,通常需要安装多个Python包。当我们在新的项目中启动一个虚拟环境,并且想要在新的虚拟环境中安装之前的依赖包时,就可以使用requirements.txt文件来完成。这个文件包含了所有需要安装的依赖包和其版本号。requirements.txt文件可以在......
  • 如何使用Python实现一个完整的排列
    一、前言排列是数学中一个重要的概念,也是计算机程序设计中经常用到的工具之一。Python是一门优秀的编程语言,在实现排列方面也非常方便。本文将从多个方面详细介绍如何使用Python实现一个完整的排列。二、什么是排列排列是将一组元素按照一定的顺序进行排列,每个元素只能出现一次。例......
  • 2023年电影票房王者!学会使用Python轻松抓取猫眼电影网站的票房排行榜数据
    电影票房一直是人们津津乐道的话题,想知道哪些电影在2023年票房大卖吗?本文将为你揭秘2023年猫眼电影网站的票房排行榜,更重要的是,我们将教你如何使用Python一键抓取这些数据,并将它们保存到Excel文件中。跟随本文,让我们一起探索这个有趣的世界吧!底部获取源代码第一部分:了解猫眼电影网......
  • Python 实现抢购脚本--Mac 环境
    说明介绍该脚本使用Selenium库来实现自动登录并在指定的时间购买商品。运行前准备mac的safari浏览器本身已经集成了safaridriver,只要启用并开启即可,步骤如下:终端启用safaridriver:sudosafaridriver--enable尝试运行safraidriver,看是否有权限问题。/usr/bin/safaridr......
  • 50个 Python 脚本
    那咱们从helloword开始~1、1、HelloWorldprint("Hello, World!")官方文档: https://docs.python.org/3/2、2、变量和数据类型name = "Alice"age = 30height = 175.5is_student = True官方文档: https://docs.python.org/3/tutorial/introduction.html#nu......
  • 【Python 千题 —— 基础篇】进制转换:十进制转十六进制
    题目描述题目描述十六进制同样也是计算机科学中常用的进制之一,现在编写一个程序,输入一个十进制数,将其转换成十六进制数。输入描述输入一个十进制数。输出描述程序将输入的十进制数转换为十六进制数,并输出其十六进制形式。示例示例①10输出:0xa代码讲解下面是本题的代码:#描述:输入......
  • 【Python 千题 —— 基础篇】字符串拼接
    题目描述题目描述我们在编程过程中经常会遇到把不同字符串拼接在一起的情况,从而更直观地展示给用户我们所要表达的信息。本题将给出两个字符串,请依次将这两个字符串拼接在一起。输入描述输入两个字符串,用回车分开。输出描述程序将输入的两个字符串依次拼接在一起,并输出拼接后的字符......