0

私のウェブスクレイパーのどこが間違っているのか教えていただければ幸いです。

私がやりたいことは、特定の文字列 ("Sorry, 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 に答える