首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个URL内发送URL

在另一个URL内发送URL
EN

Stack Overflow用户
提问于 2020-01-02 02:59:03
回答 1查看 137关注 0票数 1

因此,我正在使用python构建一个电报机器人,我需要向用户发送一个URL。我正在使用电报send_text URL:

https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={chat_id}&parse_mode=Markdown&text={message}

但是我使用的URL:

https://www.amazon.es/RASPBERRY-Placa-Modelo-SDRAM-1822096/dp/B07TC2BK1X/ref=sr_1_3?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=YJ6X8FN3V801&keywords=raspberry+pi+4&qid=1577853490&sprefix=raspberr%2Caps%2C195&sr=8-3

具有特殊字符,如&,可防止邮件随完整的URL一起发送。在此URL的情况下,我只收到以下内容:

https://www.amazon.es/RASPBERRY-Placa-Modelo-SDRAM-1822096/dp/B07TC2BK1X/ref=sr13?mkesES=ÅMÅŽÕÑ

我尝试使用utf-8来替换像&这样的字符,但是python会将它们转换回“真正的字符”,所以我不得不放弃这个想法。如果你想看看我在这里尝试过的代码片段:

url = url.replace('&', u"\x26")

那我有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-02 03:47:09

使用urlencode()编码URL

代码语言:javascript
复制
import requests
import urllib.parse

link = "https://www.amazon.es/RASPBERRY-Placa-Modelo-SDRAM-1822096/dp/B07TC2BK1X/ref=sr_1_3?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=YJ6X8FN3V801&keywords=raspberry+pi+4&qid=1577853490&sprefix=raspberr%2Caps%2C195&sr=8-3"
markdownMsg = "[Click me!](" + urllib.parse.quote(link) + ")"
url = "https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<ID>&text=" + markdownMsg + "&parse_mode=MarkDown"

response = requests.request("GET", url, headers={}, data ={})
print(response.text.encode('utf8'))

这也适用于&parse_mode=HTML

代码语言:javascript
复制
htmlMsg = "<a href=\"" + urllib.parse.quote(link) + "\">Click me!</a>"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59555254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档