0

.downloads から応答を取得する代わりに、それをトリガーして BeautifulSoup から応答を取得するための URL が必要です。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

編集

私が言おうとしていたことにちょっと失敗しました.downloadsをwebsite.net/viewtopic.phpに置き換えたいです。そのため、誰かが Web サイト (以下のように) を言うと、ボットはページのタイトルを返信しました。

somone>>>website.net/viewtopic.php?f=6&t=10960                                                                                           
bot>>>WebsiteName • Viewtopic - topicname
4

1 に答える 1

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

これには、ユーザーがコマンドの後に URL を含める必要があります!download

部屋のユーザーが入力できるように、!download website.net/viewtopic.php ボットはそれがダウンロードコマンドであるかどうかを確認しますcheck_found(self.data, "!download")。次に、ダウンロード URL を取得する必要があります。split()文字列を空白のリストに分割します。取得する URL は、リストの 2 番目の項目になります[1]。その後、美しいスープを使用してその URL を取得/解析できます。

于 2012-08-17T14:35:36.287 に答える