0

我希望你能告诉我我的网络爬虫哪里出了问题。

我想做的是在页面上某个字符串(“对不起,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")

在此先感谢您的时间,

山姆。

4

1 回答 1

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")
于 2013-08-17T07:41:43.963 回答