import requests # 需要提前下载好才能使用 from urllib import parse # url的解析,合并,编码,解码模块 def chat_robot(msg): msg = parse.quote(msg) # 编码 url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}".format( msg) html = requests.get(url) # GET请求 return html.json()["content"].replace("{br}", "\n\t\t") def main(): print("输入'exit'退出此程序\n") while True: massage = input("我>>>") if massage == "exit": print("机器人:", "下再聊吧,拜拜~") break elif not massage.replace(" ", ""): # 如果什么也没输入,则输出下面消息 print("机器人:", "没有输入内容!") continue res = chat_robot(massage) print("机器人:", res)
时间: 2024-04-28 10:24:03 浏览: 296
这是一个简单的聊天机器人程序,使用了 Python 的 requests 和 urllib.parse 模块。其中聊天机器人的核心功能在 chat_robot() 函数中,通过对用户输入的消息进行编码和 GET 请求,获取机器人的回复,并将回复的内容解码后返回。在 main() 函数中,通过循环不断接受用户输入的消息,并将消息传递给 chat_robot() 函数进行处理,最后输出机器人的回复。如果输入的消息为 "exit",则程序退出。
相关问题
如何在Python爬虫中处理Robot协议和Cookie,以提高爬取效率和避免被网站限制?
在Python爬虫开发中,理解并正确处理Robot协议和Cookie是提升爬取效率和避免被网站限制的重要步骤。《Python实现旅游网站数据爬取技术研究与实践》一文中详细介绍了这些关键技术的处理方法和实际应用案例,对于理解相关概念和掌握操作技巧有着极大的帮助。
参考资源链接:[Python实现旅游网站数据爬取技术研究与实践](https://wenku.csdn.net/doc/3816979sfa?spm=1055.2569.3001.10343)
首先,Robot协议(robots.txt)是网站的爬虫协议,它定义了哪些页面可以被爬虫访问,哪些不可以。在Python中,可以使用requests库来读取和解析robots.txt文件。例如,使用以下代码可以检查特定URL是否允许被爬取:
```python
import requests
from urllib.parse import urljoin
def can_fetch(url, user_agent='*'):
robots_url = urljoin(url, '/robots.txt')
headers = {'User-Agent': user_agent}
response = requests.get(robots_url, headers=headers)
if response.status_code != 200:
return False
rules = [line for line in response.text.split('\n') if line.startswith('Allow:')]
allow_url = urljoin(url, urlparse(urlparse(url).path + '/').path)
for rule in rules:
if allow_url in rule:
return True
return False
url = '***'
if can_fetch(url):
# 进行爬取
else:
print(
参考资源链接:[Python实现旅游网站数据爬取技术研究与实践](https://wenku.csdn.net/doc/3816979sfa?spm=1055.2569.3001.10343)
阅读全文