吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8955|回复: 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] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/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, 2025-5-29 19:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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