[英]How to search for a word and then replace text after it using regular expressions in python?
[英]How do I search for text in a page using regular expressions in Python?
我正在嘗試為phenny創建一個簡單的模塊,這是Python中的一個簡單IRC bot框架。 該模塊應該轉到http://www.isup.me/website ,要求用戶檢查網站是否打開或關閉。 我以為我可以在模塊中使用正則表達式,就像其他內置模塊也使用它一樣,因此盡管我認為我做得不對,但我嘗試創建此簡單腳本。
import re, urllib
import web
isupuri = 'http://www.isup.me/%s'
check = re.compile(r'(?ims)<span class="body">.*?</span>')
def isup(phenny, input):
global isupuri
global cleanup
bytes = web.get(isupuri)
quote = check.findall(bytes)
result = re.sub(r'<[^>]*?>', '', str(quote[0]))
phenny.say(result)
isup.commands = ['isup']
isup.priority = 'low'
isup.example = '.isup google.com'
它導入所需的Web包(我認為),並定義要在頁面中查找的字符串和文本。 我真的不知道我在那四行中做了什么,我只是將代碼剝離了另一個“ phenny”模塊。
這是一個報價模塊的示例,該模塊從某些網頁中獲取隨機報價,我有點試圖以此為基礎: http : //pastebin.com/vs5ypHZy
有人知道我在做什么錯嗎? 如果有什么需要澄清的地方,我可以告訴您,我認為我的解釋還不夠。
這是我得到的錯誤:
Traceback (most recent call last):
File "C:\phenny\bot.py", line 189, in call
try: func(phenny, input)
File "C:\phenny\modules\isup.py", line 18, in isup
result = re.sub(r'<[^>]*?>', '', str(quote[0]))
IndexError: list index out of range
嘗試一下(從http://docs.python.org/release/2.6.7/library/httplib.html#examples ):
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD","/index.html")
res = conn.getresponse()
if res.status >= 200 and res.status < 300:
print "up"
else:
print "down"
在檢查響應狀態之前,您還需要添加代碼以跟隨重定向。
編輯
不需要處理重定向但將異常用於邏輯的替代方法:
import urllib2
request = urllib2.Request('http://google.com')
request.get_method = lambda : 'HEAD'
try:
response = urllib2.urlopen(request)
print "up"
print response.code
except urllib2.URLError, e:
# failure
print "down"
print e
您應該自己進行測試,然后選擇最佳的測試。
該錯誤意味着您在頁面的任何地方都找不到您的正則表達式(列表quote
中沒有元素0
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.