从.downloads获得响应的Instad我想要一个url来触发它并从BeautifulSoup获得回复,我是python的新手,这只是我的第3个项目。
#!/usr/bin/env python
import botlib
import urllib
import BeautifulSoup
class StaffBot(botlib.Bot):
def __init__(self, server, channel, nick, password=None):
botlib.Bot.__init__(self, server, 6667, channel, nick)
if password != None:
self.protocol.privmsg("nickserv", "identify" % password)
def __actions__(self):
botlib.Bot.__actions__(self)
if botlib.check_found(self.data, ".downloads"):
username = self.get_username()
self.protocol.privmsg(self.channel, "%s: response" % username)
if __name__ == "__main__":
StaffBot("irc.rizon.net", "#chan", "nick").run()
只是在案件中我做错了...... http://pastebin.com/AhrssPVW
使用的BeautifulSoup脚本。
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen("url"))
print soup.title.string
修改
我有点失败,我试图说,我想用网站.net/viewtopic.php替换.downloads。所以有人说网站(如下),机器人回复了网页标题。
somone>>>website.net/viewtopic.php?f=6&t=10960
bot>>>WebsiteName • Viewtopic - topicname
答案 0 :(得分:0)
也许您为用户创建了一个命令
if botlib.check_found(self.data, "!download"):
# must be !download <url>
url = self.data.split()[1] # < i don't know if the library adds anything else to self.data
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen(url))
print soup.title.string
这要求您的用户在!download
命令后包含一个网址。
所以房间里的用户可以输入!download website.net/viewtopic.php
你的机器人会检查它是否是下载命令check_found(self.data, "!download")
。然后需要获取下载URL。 split()
将字符串拆分为空格中的列表。并且要获取的网址将是列表[1]
中的第二项。然后,你可以使用漂亮的汤来获取/解析该网址。