如果声明不适用于刮刀

时间:2013-08-17 07:37:33

标签: if-statement beautifulsoup urllib urlopen

我希望你能告诉我我的网络刮板出了什么问题。

我想要做的是在页面上的某个字符串(“抱歉,Gruen Fan”)发生变化时收到通知。我能够拉入字符串,但是,“If”函数似乎不起作用 - 它的输出应该是“Text is in”。这是代码:

from bs4 import BeautifulSoup
from urllib import urlopen
import re

urls= ["http://www.abc.net.au/tv/programs/gruen-nation/"]

for url in urls:
    webpage = urlopen(url).read()
    FindTitle = re.compile('\t\t\t\t(.*)\.<BR><BR>')
    FindTitle = re.findall(FindTitle,webpage)
    print FindTitle[0]
    print ' '

if 'Sorry, Gruen fan' in FindTitle:
    print("Text is in")
else:
    print("Text isn't in")

提前感谢您的时间,

萨姆。

1 个答案:

答案 0 :(得分:0)

FindTitle是一个列表。该字符串不在列表中,因此您获得False

您应该检查它是否在列表中的字符串中:

if 'Sorry, Gruen fan' in FindTitle[0]:

此外,如果您只想检查字符串,则不需要正则表达式:

from urllib import urlopen

urls = ["http://www.abc.net.au/tv/programs/gruen-nation/"]

for url in urls:
    html = urlopen(url).read()

    if 'Sorry, Gruen fan' in html:
        print("Text is in")
    else:
        print("Text isn't in")