一键构造你的博客目录

最近看了一下吴军的数学之美。书很好,废话我就不多少了。看了第9章图论和网络爬虫,一直都觉得网络爬虫很牛B,搜索引擎不就是用爬虫爬网页的吗,于是想写一个简单的爬虫来爬网页试试,最先想到的就是给自己的博客建一个目录,够小够简单了吧,于是就有了这篇文章,简单的分享一下,先申明我的实现很简单没有技术含量,在看下文之前可以先看看 我的博客目录。              源码必共享

简单介绍一下网络爬虫的原理:给你一个网页地址,先把这个网页下载下来,然后分析这个网页的内容,得到这个网页中的所有链接,然后下载这些网页,继续分析下载。这样就能下载互联网上的很多网页。原理就这么简单,实现起来就不那么容易了。由于深入不了只能说简单的。

构造我的博客目录思路简单分析。获得你的所有文章的地址及标题,然后将这些文章分类。你的文章其实是已经分类好了的,只用得到你的文章的所有分类,然后根据分类得到所有分类下的文章,就可以得到你所有的文章及其分类,构造你的博客目录就容易了。

被否定了的思路一:随便拿到我的一篇文章的地址,下载这篇文章,然后分析这个地址,得到这篇文章里面的所有链接,按照一定的规则得到我的文章地址,即排除无用的连接,然后以爬虫的思路得到我的所有文章,由于每篇文章都有它的分类,所以很快就能构造我的博客目录了。然而由于博客园的实现不是我想的那样,在下载一篇文章的时候,没有下面的内容,因为下面的内容就像一个双向链表一样将我的所有文章连接起来了,我只要知道一篇文章的地址,通过这个”双向链表“我就能得到我的所有文章了,可就是下载网页里偏偏没有下面的内容,于是这个最接近爬虫的方法被PASS掉了。 

被否定了的思路二。每个人的文章都是分页显示的,我就可以下载这些内容,然后就可以得到我的所有文章,可还是有个问题,跟上面一样的原因,妹的,下载的网页中没有文章的分类,得到了所有的文章,却不知道文章的分类,叫我怎么构造目录啊。于是又被PASS掉了。

 

要构造我的博客目录,这么简单的需求方法当然是很多的了,于是用了个不太想爬虫的方法。就是上面所说的,得到所有文章的分类,下载每个分类下的文章,构造博客目录。获得我的博客分类的方法很简单,如获取我的文章分类方法如下:

请求这个地址:http://www.cnblogs.com/hlxs/mvc/blog/sidecolumn.aspx

传入参数blogApp=hlxs;(hlxs是我在博客园的ID)

这样就得到了我文章的所有分类,然后按照分类得到分类下的所有文章,在构造博客目录就简单了。在这个过程中只要知道某人在博客园的ID就能构造它的博客目录,我说一键构造你的博客目录不为过吧。

如果你也想构造你的博客目录,可以先看看我的博客目录,构造你的博客目录很简单,运行程序,输入你的博客园ID,会自动生成一个”我的博客目录.txt”,将文件的内容以源码的方式发表就行。

<think>好的,用户想要找一个能够实现优快云 Markdown文章一键上传功能的脚本,用Python或者Shell来实现。首先,我需要回顾一下用户提供的引用内容,看看有没有相关的信息。引用1提到有博主写过Python脚本但已经失效,引用2说Shell可能更简洁,引用3提到了优快云的Python技能树,引用4和5是关于Python和Shell在自动化操作中的应用,比如ADB截图和钉钉消息发送。这些可能对解决当前问题有帮助。 首先,用户的需求是自动上传Markdown到优快云。根据引用1,之前有Python脚本但因为网站改版不能用了,所以可能需要更新方法。现在需要分析优快云的上传接口或者找到其他方法。 可能的步骤包括:登录优快云,获取Cookies,解析Markdown内容,调用发布接口。但优快云可能有反爬机制,所以需要模拟浏览器操作或者找到官方API。另外,引用5中的POST请求示例可能对调用接口有帮助,比如使用Python的requests库或者Shell的curl命令。 接下来,考虑使用Python的方案。可能需要使用Selenium进行浏览器自动化,处理登录和上传,但这样脚本会比较复杂。或者找到优快云的API,通过抓包分析。比如,用户登录后,发布文章的请求地址和参数格式。引用5中的例子是发送markdown消息到钉钉,类似地,可以构造发布文章的POST请求。 对于Shell脚本,可以使用curl命令发送HTTP请求,但需要处理登录后的cookie管理,这可能比较麻烦。Python的requests库可能更方便处理会话和Cookies。 需要验证优快云是否有公开的API。根据经验,很多博客平台没有公开的API,但可以通过抓包分析浏览器请求。比如,在浏览器中手动发布一篇文章,查看Network选项卡中的请求,找到URL、Headers和Data,然后模拟这个请求。 另外,引用4中提到了使用ADB命令截图,这可能和上传文件无关,但处理图片上传的话可能需要multipart/form-data格式的上传,但用户的需求是上传Markdown,可能不需要处理图片,但如果有本地图片需要上传到优快云图床,则需要额外处理。 综合来看,实现步骤可能包括: 1. 登录优快云,获取Cookies或Token。 2. 构造包含文章标题、内容、分类等的POST请求。 3. 处理可能的验证或反爬措施。 Python的实现可以使用requests.Session保持登录状态,发送POST请求。需要先登录,可能遇到验证码问题,但用户可能可以手动登录后导出Cookies供脚本使用,避免自动登录的复杂性。 Shell脚本可以使用curl,但需要处理Cookie存储和发送,可能较为繁琐。 因此,可能的解决方案是Python脚本,使用requests库,手动获取Cookie后,自动构造请求发布文章。但需要注意优快云的接口是否稳定,是否有CSRF token等安全机制。 现在需要具体步骤:如何获取发布接口的URL和参数格式?可能需要手动发布一篇测试文章,用浏览器开发者工具查看请求信息。例如,发布文章的URL可能是类似https://mp.youkuaiyun.com/mp_blog/article/edit,请求方法可能是POST,参数可能包括title、content、tags等。 假设已经获取到正确的接口和参数,接下来编写Python脚本,读取本地的Markdown文件,构造请求数据,发送POST请求。需要处理登录状态,可能需要用户提供Cookie字符串,或者在脚本中模拟登录,但模拟登录可能复杂,涉及验证码等。 因此,较为可行的方式是用户手动登录后,从浏览器中复制Cookie,然后在脚本中使用该Cookie进行认证。这样避免了处理登录过程的复杂性。 总结,Python脚本的大致步骤: 1. 读取Markdown文件内容。 2. 设置请求头,包含Cookie和User-Agent。 3. 构造POST数据,包括标题、内容、分类等。 4. 发送POST请求到优快云的发布接口。 5. 检查响应,确认是否发布成功。 同时,用户需要自行获取Cookie,并注意接口的稳定性。此外,引用1提到之前的脚本失效,可能因为接口变化,所以需要用户自行抓取最新的接口信息。 最后,生成相关问题,比如如何获取优快云的Cookie,如何处理图片上传,如何自动登录等。</think>### 优快云 Markdown 一键上传脚本实现方式 #### 1. 核心思路 优快云 未公开文章发布 API,需通过模拟浏览器操作或直接调用隐藏接口实现[^1][^3]。推荐以下两种方案: - **Python + Requests**:通过抓包获取接口参数,构造带 Cookie 的 POST 请求 - **Shell + Curl**:结合 Cookie 管理和参数格式化直接调用接口 #### 2. Python 实现示例 ```python import requests import json def upload_markdown(file_path, cookie): # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 构造请求头 headers = { "Cookie": cookie, "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Content-Type": "application/json" } # 请求参数(需根据实际接口调整) payload = { "title": "自动上传测试", "content": content, "category": "Python", "tags": ["自动化", "优快云"] } # 发送请求 response = requests.post( "https://mp.youkuaiyun.com/mp_blog/article/edit", headers=headers, data=json.dumps(payload) ) return response.json() # 使用示例(需先获取有效Cookie) print(upload_markdown("demo.md", "your_cookie_here")) ``` #### 3. Shell 实现示例 ```shell #!/bin/bash FILE_PATH=$1 COOKIE=$2 TITLE="自动上传测试" CONTENT=$(cat $FILE_PATH | sed 's/"/\\"/g') curl -X POST "https://mp.youkuaiyun.com/mp_blog/article/edit" \ -H "Cookie: $COOKIE" \ -H "User-Agent: Mozilla/5.0" \ -H "Content-Type: application/json" \ -d "{ \"title\": \"$TITLE\", \"content\": \"$CONTENT\", \"category\": \"Shell\", \"tags\": [\"自动化\", \"脚本\"] }" ``` #### 4. 关键参数获取步骤 1. 浏览器登录 优快云 后按 F12 打开开发者工具 2. 手动发布一篇文章,观察 Network 标签中的 `article/edit` 请求 3. 复制以下关键信息: - Request Headers 中的 `Cookie` - Request Payload 中的参数结构 4. 替换脚本中的占位参数 #### 5. 注意事项 - Cookie 有效期约 7 天,需定期更新 - 文章内容需转义特殊字符(如双引号) - 分类 ID 需转换为对应的数字编码 - 建议添加异常处理和日志记录功能[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值