上午好☀️☀️☀️️
本答案参考ChatGPT-3.5
这个问题描述的是B站(哔哩哔哩)漫画网站在切换章节时,网址变化的规律。为了找到这个规律,我们可以分析每个链接的参数以及它们的顺序。
-
参数解释:
samewindow
:即子窗口宽度,也就是当前页面是否只显示一部分内容。
-
参数顺序:
由于我们不知道具体的变化规则,我们只能尝试把问题简化为两个部分:
a) 在第四个链接中,我们可以看到网址的前缀是mc29329/
,这表示它是与Manga相关的。
b) 在第二个链接中,虽然同样有后缀mc29329/
, 然而其前缀不是mc29329/
。因此,我们知道这个链接的漫画ID可能位于第三个参数的前面。
接下来我们可以按这两个线索开始寻找规律:
例如,在前三个链接中,第四个链接对应的是第536314章,它的第一个参数就是536314。所以,我们可以假设在第四个链接的最后两行分别对应第1563064章和第1568822章。这两个列的第一行可以分别求出相应的漫画ID。
具体操作如下:
from urllib.parse import urlparse, parse_qs
url = "https://manga.bilibili.com/m/mc29329/536314?samewindow=true"
parsed_url = urlparse(url)
page_id = int(parsed_url.path.split('/')[-1])
# 前两个参数可能为对应的章节号
if page_id % 2 == 1:
first_param = 0
else:
first_param = 1
# 找到对应的漫画ID
chapter_ids = [int(i[0]) for i in parse_qs(parsed_url.query).get('chapter', [])]
print(f"Chapter IDs: {chapter_ids}")
以上代码首先解析了给定的URL,并将其转换为IPv6地址。然后,它试图获取指定页面的章节号。如果某个章节号是奇数,我们从0开始;如果是偶数,我们从1开始。如果查询的'chapter'参数为空,我们没有找到章节号,所以返回空列表。如果成功找到章节号,我们将它作为一个列表添加到当前页码的后面。最后,输出所有找到的章节号。