本帖最后由 lovemcbest 于 2023-7-28 15:38 编辑
接上一个帖子
我觉得无聊,于是就做了MCBBS简易版
MCBBS LITE 1.0代码发布
用法:
首先输入start开始
然后输入1进入茶馆
再输入帖子前面的数字就可以进入那个帖子 或 输入 page 换页
代码(稍长,较烂)
import requests
from lxml import etree
import string
url1 = "https://www.mcbbs.net/forum-chat-"
url2 = "1"
url3 = ".html"
headers = {"User-Agent":"mozilla/5.0(Windows;x64)AppleWebKit/537.36(KHTML,like Gecko) Chrome/54.0.2840.99 Safari/537.6"}
def op():
url2 = input("请输入页数-->")
if url2.isdigit():
cg(url2)
elif url2 == "back":
cg("1")
else:
print("未知的命令,请检查后重试")
op()
def cg(url2):
print("")
page_data = requests.get(url1+url2+url3,headers=headers)
html = etree.HTML(page_data.content)
result = html.xpath('//th/a[@onclick="atarget(this)"]/text()')
times = len(result)
for i in range(1,times):
print(i,". ",result[i])
tz = input("-->")
if tz.isdigit():
word = html.xpath('//th/a[@onclick="atarget(this)"]/@href')[int(tz)]
tezi = requests.get("https://www.mcbbs.net/"+word,headers=headers)
neirong = etree.HTML(tezi.text)
last = neirong.xpath('string(//tr/td[@class="t_f"])')
print("")
for i in range(64,len(last)):
print(last[i],end="")
print("")
back = input("输入任意字符以返回-->")
cg(url2)
elif tz == "page":
op()
elif tz == "back":
choose1()
else:
print("未知的命令,请检查后重试")
cg(url2)
def choose1():
choose = input("请输入数字(1,矿工茶馆:)-->")
if choose == "1":
cg("1")
elif choose == "back":
start()
else:
print("未知的命令,请检查后重试")
choose1()
def start():
begin = input("-->")
if begin == "start":
choose1()
elif begin == "headers":
headers = input("请输入headers-->")
choose1()
else:
print("未知的命令,请检查后重试")
start()
print("MCBBS-LITE")
print(" do by lovemcbest https://www.mcbbs.net/home.php?mod=space&uid=3993788")
print("")
start()复制代码
文件

_MCBBS_LITE.zip
(1009 Bytes, 下载次数: 0)
python下载:
https://www.python.org/downloads/release/python-3113/
注意事项:
1.需安装 requests 和 lxml 库
2.页数不能太大
3.可能会有一些bug
来自群组: mcbbs梗图
接上一个帖子
我觉得无聊,于是就做了MCBBS简易版
MCBBS LITE 1.0代码发布
用法:
首先输入start开始
然后输入1进入茶馆
再输入帖子前面的数字就可以进入那个帖子 或 输入 page 换页
代码(稍长,较烂)
import requests
from lxml import etree
import string
url1 = "https://www.mcbbs.net/forum-chat-"
url2 = "1"
url3 = ".html"
headers = {"User-Agent":"mozilla/5.0(Windows;x64)AppleWebKit/537.36(KHTML,like Gecko) Chrome/54.0.2840.99 Safari/537.6"}
def op():
url2 = input("请输入页数-->")
if url2.isdigit():
cg(url2)
elif url2 == "back":
cg("1")
else:
print("未知的命令,请检查后重试")
op()
def cg(url2):
print("")
page_data = requests.get(url1+url2+url3,headers=headers)
html = etree.HTML(page_data.content)
result = html.xpath('//th/a[@onclick="atarget(this)"]/text()')
times = len(result)
for i in range(1,times):
print(i,". ",result[i])
tz = input("-->")
if tz.isdigit():
word = html.xpath('//th/a[@onclick="atarget(this)"]/@href')[int(tz)]
tezi = requests.get("https://www.mcbbs.net/"+word,headers=headers)
neirong = etree.HTML(tezi.text)
last = neirong.xpath('string(//tr/td[@class="t_f"])')
print("")
for i in range(64,len(last)):
print(last[i],end="")
print("")
back = input("输入任意字符以返回-->")
cg(url2)
elif tz == "page":
op()
elif tz == "back":
choose1()
else:
print("未知的命令,请检查后重试")
cg(url2)
def choose1():
choose = input("请输入数字(1,矿工茶馆:)-->")
if choose == "1":
cg("1")
elif choose == "back":
start()
else:
print("未知的命令,请检查后重试")
choose1()
def start():
begin = input("-->")
if begin == "start":
choose1()
elif begin == "headers":
headers = input("请输入headers-->")
choose1()
else:
print("未知的命令,请检查后重试")
start()
print("MCBBS-LITE")
print(" do by lovemcbest https://www.mcbbs.net/home.php?mod=space&uid=3993788")
print("")
start()复制代码
文件

_MCBBS_LITE.zip
(1009 Bytes, 下载次数: 0)
python下载:
https://www.python.org/downloads/release/python-3113/
注意事项:
1.需安装 requests 和 lxml 库
2.页数不能太大
3.可能会有一些bug
来自群组: mcbbs梗图