Comments (5)
来源和延伸阅读可能会占据过多的篇幅,暂时没有提供,想要获得这些信息,你可以在receiveStream和createTransStream中捕获,如果你可以修改的话欢迎PR这个功能。
too_many_request目前未遇见,如果你的服务器在国外,可能遭遇黑名单。
from metaso-free-api.
来源和延伸阅读可能会占据过多的篇幅,暂时没有提供,如果你希望获得,可以在receiveStream和createTransStream中捕获 too_many_request目前未遇见,如果你的服务器在国外,可能遭遇黑名单。
好的,谢谢大佬
我的服务器两台阿里云的,一台学校的,我用我自己的代码不知道为啥,请求完之后显示响应码是200,然后text是'data:[TOO_MANY_REQUESTS]\n\n\n\ndata:[DONE]\n\n'
下面是我的代码,大佬能帮我看看吗,要是不方便就算啦,主要是就很奇怪,明明本地可以用,锁ip也不至于阿里云的也全锁了吧。。。
`import json
import re
import requests
def mita_chat(query):
token = 'wr8+pHu3KYryzz0O2MaBSNUZbVLjLUYC1FR4sKqSW0rERqkSdjevgxp8EI5jHM5WjC2qL5r/AwXd/Hu4nl2qPzH0m7Mw93LNYK8sW+CJnI04geDzvCVTCdd/P1DDj86Zu9sahbUSutdAqN9IGJuE7A=='
cookies = {
'JSESSIONID': '5B2751B1344B59BA4EB39A1DD60CAEEE',
'AMP_MKTG_c1c8da453c': 'JTdCJTIycmVmZXJyZXIlMjIlM0ElMjJodHRwcyUzQSUyRiUyRmNuLmJpbmcuY29tJTJGJTIyJTJDJTIycmVmZXJyaW5nX2RvbWFpbiUyMiUzQSUyMmNuLmJpbmcuY29tJTIyJTdE',
'AMP_c1c8da453c': 'JTdCJTIyZGV2aWNlSWQlMjIlM0ElMjIxODhlYWUxMC0zMjY4LTQ2YmEtYTMzYS0xZTJhNTkzZDQ2NDIlMjIlMkMlMjJ1c2VySWQlMjIlM0ElMjI2NDZlMTEwYWQ4ZGJlMWJmOTA5N2FmZjIlMjIlMkMlMjJzZXNzaW9uSWQlMjIlM0ExNzEyNTYyNDYzOTUxJTJDJTIyb3B0T3V0JTIyJTNBZmFsc2UlMkMlMjJsYXN0RXZlbnRUaW1lJTIyJTNBMTcxMjU2MjQ4OTYwMiUyQyUyMmxhc3RFdmVudElkJTIyJTNBNDclMkMlMjJwYWdlQ291bnRlciUyMiUzQTElN0Q',
}
headers = {
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="8"',
'Accept': 'application/json, text/plain, /',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'token': token,
'Origin': 'https://metaso.cn',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://metaso.cn/search/8469895147684831232',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
json_data = {
'question': query,
'mode': 'detail',
}
response = requests.post('https://metaso.cn/api/session', cookies=cookies, headers=headers, json=json_data)
# print(response.text)
id=response.json()['data']['id']
print(id)
headers = {
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="8"',
'accept': 'text/event-stream',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0',
'token': token,
'Origin': 'https://metaso.cn',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://metaso.cn/search/8469895147684831232',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
import urllib.parse
base_url = 'https://metaso.cn/api/searchV2'
session_id = id
question = query
lang = 'zh'
mode = 'detail'
is_mini_webview = '0'
token = token
# 对参数进行URL编码
encoded_question = urllib.parse.quote(question)
encoded_token = urllib.parse.quote(token)
# 构建完整的URL
url = f'{base_url}?sessionId={session_id}&question={encoded_question}&lang={lang}&mode={mode}&is-mini-webview={is_mini_webview}&token={encoded_token}'
response = requests.get(url, cookies=cookies, headers=headers)
#会在这里请求完报错,报错为'data:[TOO_MANY_REQUESTS]\n\n\n\ndata:[DONE]\n\n'
res=''
for item in response.text.splitlines():
try:
res+=json.loads(item[len("data:"):])['text']
except:
pass
cleaned_res = re.sub(r"\[\[(\d+)\]\]", r"[\1]", res)
links = []
# 处理link和resultId
content_str = response.content.decode('utf-8')
# 将数据按换行符分割成单独的块
data_blocks = content_str.split('\n\n')
# 循环处理每个数据块
for block in data_blocks:
if block.strip(): # 确保块不为空
# 解析JSON数据
try:
json_data = json.loads(block.replace('data:', ''))
# 检查数据块类型
if 'resultId' in json_data:
resultId = json_data['resultId']
links = json_data['list']
print(f'resultId: {resultId}')
print(links)
except:
pass
result_list = []
# 重新排序列表并添加序号和换行符
for index, item in enumerate(links, start=1):
result_list.append(f'[{index}] {item["title"]}: {item["link"]}')
return cleaned_res, result_list
if name == "main":
cleaned_res, result_list = mita_chat(query='你好')
print(cleaned_res, result_list)`
from metaso-free-api.
@jhw0510 如果你是自行逆向的,这个token是一直在变动的,它和你的ip关联,你需要在每次请求前从页面中提取token用于请求,否则你会获得too many requests。
请参考本仓库的实现:
from metaso-free-api.
@jhw0510 如果你是自行逆向的,这个token是一直在变动的,它和你的ip关联,你需要在每次请求前从页面中提取token用于请求,否则你会获得too many requests。 请参考本仓库的实现:
明白了,谢谢大佬,非常感谢您!!
然后修改本项目的话,实在不好意思,我不太会typescript,就会用python :(
from metaso-free-api.
@jhw0510 好的,没关系 :D
from metaso-free-api.
Related Issues (13)
- 请问一下,能实现官网上搜索范围的切换吗?全网or学术 HOT 2
- 可以增加些额外信息输出或者可选 HOT 1
- 可否增加360 AI搜索 HOT 1
- 可以给出参考来源吗 HOT 1
- 请问 怎么加ip轮询呢 HOT 1
- 回答的内容会被截断 HOT 1
- 我自己尝试build镜像一直出错,你们不会吗 HOT 1
- 提问天气,不返回数据了,显示为空 HOT 2
- 建议模型加个前缀
- 可以增加https://meta.law/ HOT 3
- 能增加登录自动获取uid和sid吗,现在 sid 会经常失效 HOT 1
- 英文输出语言支持
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metaso-free-api.