Python 3.x 在另一个URL内发送URL
所以我正在用python构建一个电报机器人,我需要向用户发送一个URL。我正在使用电报发送文本URL:Python 3.x 在另一个URL内发送URL,python-3.x,url,python-requests,telegram-bot,python-telegram-bot,Python 3.x,Url,Python Requests,Telegram Bot,Python Telegram Bot,所以我正在用python构建一个电报机器人,我需要向用户发送一个URL。我正在使用电报发送文本URL: https://api.telegram.org/bot{bot\u token}/sendMessage?chat\u id={chat\u id}&parse\u mode=Markdown&text={message} 但是我正在使用的URL: https://www.amazon.es/RASPBERRY-Placa-Modelo-SDRAM-1822096/dp/B07TC2BK1X
https://api.telegram.org/bot{bot\u token}/sendMessage?chat\u id={chat\u id}&parse\u 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”)
有什么办法可以解决这个问题吗?用
导入请求
导入urllib.parse
链接=”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/sendMessage?chat_id=&text=“+markdownMsg+”&parse_mode=MarkDown”
response=requests.request(“GET”,url,headers={},data={})
打印(response.text.encode('utf8'))
这也适用于&parse_mode=HTML
htmlMsg = "<a href=\"" + urllib.parse.quote(link) + "\">Click me!</a>"
htmlMsg=“”
您看过吗?