If statement If语句不适用于Scraper

If statement If语句不适用于Scraper,if-statement,beautifulsoup,urllib,urlopen,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

我希望你能告诉我我的废纸机哪里出了问题

我想做的是当页面上的某个字符串(“对不起,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")
从bs4导入美化组
从urllib导入urlopen
进口稀土
URL=[”http://www.abc.net.au/tv/programs/gruen-nation/"]
对于url中的url:
webpage=urlopen(url).read()
FindTitle=re.compile('\t\t\t\t(.*)\.

')) FindTitle=re.findall(FindTitle,网页) 打印FindTitle[0] 打印“ 如果FindTitle中的“对不起,Gruen fan”: 打印(“文本在中”) 其他: 打印(“文本不在中”)
提前感谢您抽出时间


Sam.

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")