吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7775|回复: 26
收起左侧

[Python 原创] [python]某乎盐选vip文章下载分析

[复制链接]
cococola 发表于 2022-12-4 00:10
一、前言
本贴仅用于学习交流方法。如有违规,请版主大大删除。
我写这篇帖子的灵感来自于看到了【waahah】大佬发布的某乎盐选文章下载器,其贴链接为:知乎盐选文章下载
https://www.52pojie.cn/thread-1718850-1-1.html
(出处: 吾爱破解论坛)
由于这位大佬只是把成品放了上了,没有给出其源代码,于是我这个小白就斗胆尝试分析了一波,下面我将分享我的学习过程。
【waahah】大佬觉得不合适,请告知我,我会立即删帖,以示尊重。
二、思路分析
以下面的文章为例,可以看到这是一篇需要vip才可以看的文章
1.png
那么我们如何才能不花钱白嫖呢?这里就需要用到一个解析网站:https://mfyx.top/
在这里只要将文章的url地址粘贴进去就可以呈现出整篇文章。
那么接下来我需要做的是分析网页源代码,并把文章里面关键的标题、简介、段落等
有用的关键性的信息爬取出来就可以了。
三、实现过程
调出网页抓包工具,分析下会发现在将url地址粘贴并搜索之后,会出现一个之前没有的数据包search
发现里面的响应信息恰好是我们要看的这篇文章的相关内容
2.png 3.png
而之后在跳转到这篇文章后就会发现,无论是哪篇文章,其跳转后的地址都为https://mfyx.top/archives/10114这种类型
是不是会有些眼熟,这里的数字不就是search数据包里面的id么?接下来就迎刃而解了。
四、源代码
我这里为了方便一些,就把爬取到的数据直接写在txt文件中了。
[Python] 纯文本查看 复制代码
#!/usr/bin/env/ python
# -*- coding:utf-8 -*-
# [url=home.php?mod=space&uid=686208]@AuThor[/url] : zxy
import time
import requests
from lxml import etree


url = "https://mfyx.top/api/search"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
org_url = input("请输入知乎盐选文章的分享地址:")
data = {"url": [org_url]}
response = requests.post(url=url, json=data, headers=headers).json()
# print(response)
arc_id = response["id"]
title = response["title"].replace("?", "")
des = response["description"]
new_url = f"https://mfyx.top/archives/{arc_id}"
res = requests.get(new_url, headers=headers).text
# print(res)
# xpath://*[@id="lightgallery"]/p
html = etree.HTML(res)
p = html.xpath('//*[@id="lightgallery"]/p/text()')
# print(type(p), p)
print(f"小主为您找到文章的简介:\n{des}")
time.sleep(3)
start = time.time()
with open(f"{title}.txt", "w", encoding="utf-8") as f:
    for each_line in p:
        f.write(each_line + "\n")
    end = time.time()
    print(f"[{title}]文章下载完毕,共耗时{end - start:.2f}秒")

五、成品
【waahah】大佬的帖子中已经有做好的成品了,且是下载为pdf格式的文件。我这里就不再打包了,如果有需要的就去【waahah】大佬的帖子:
https://www.52pojie.cn/thread-1718850-1-1.html 下载吧~~~

免费评分

参与人数 6吾爱币 +6 热心值 +4 收起 理由
junjia215 + 1 + 1 用心讨论,共获提升!
yxh19 + 1 + 1 我很赞同!
ZhiweiHu + 1 谢谢@Thanks!
bittersweet0 + 1 我很赞同!
jiangzhikuan + 1 + 1 谢谢@Thanks!
haiyangnanzi + 1 + 1 谢谢@Thanks!楼主好人

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

断桥隔爱 发表于 2022-12-4 00:15
人家的接口失效的话,这个也失效了
huang9126 发表于 2023-2-28 11:48
jingcaiaze 发表于 2022-12-4 15:18
waahah 发表于 2022-12-5 17:04
本帖最后由 waahah 于 2022-12-5 17:11 编辑


代码已经在我Github的对应仓库上开源过了,你要想看的话可以看看
https://github.com/waahah/async-spider/blob/main/yanxuan/yanxuan.py
 楼主| cococola 发表于 2022-12-4 00:11
空竹 发表于 2022-12-4 00:24
楼主 早点睡觉吧

wan456 发表于 2022-12-4 01:59
myfx这个中转站也是爬虫趴下来的,
涛之雨 发表于 2022-12-4 09:01
感觉原理就是作者买了个严选的什么会员,然后丢到服务器上去替你请求。。。
cflying 发表于 2022-12-4 10:48
涛之雨 发表于 2022-12-4 09:01
感觉原理就是作者买了个严选的什么会员,然后丢到服务器上去替你请求。。。

感觉不是用账号现查,应该是前期爬下来的文章库,然后去查文章库

点评

我的意思是先查库,如果有爬过就直接返回库里的,如果没有缓存过,就去爬一下。。。 可能还有什么缓存时间比如距离上次更新超过1个月(随便举个例子),就再更新一下  详情 回复 发表于 2022-12-4 21:21
ljl403068 发表于 2022-12-4 15:26
学习了,就是后面的接口不太理解,刚学,王李姐
runfog 发表于 2022-12-4 16:04
已经有做好的成品了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表