2016-03-31 2 views
2

Ich habe diesen Scraper erstellt, um nach Online-Streams zu suchen, die mich durch alle Popups gehen.Python zeigen personalisierten Fehler

Wie konnte ich es zurückgeben ‚‘ keine Streams verfügbar ‚‘, wenn Suche leer aufkommt

import random 
from bs4 import BeautifulSoup 
import urllib2 
import re 
from urlparse import urljoin 

user_input = raw_input ("Search for Team = "); 


resp = urllib2.urlopen("http://idimsports.eu/football.html") 
soup = BeautifulSoup(resp, from_encoding=resp.info().getparam('charset')) 

base_url = "http://idimsports.eu" 
for link in soup.find_all('a', href=re.compile(''+user_input)): 
    print urljoin(base_url, link['href']) 
+3

Wie würden Sie bestimmen, ob die Suche leer kommt? Und worauf möchten Sie diese Nachricht zurückgeben? –

Antwort

0

Was dazu:

... 
links = soup.find_all('a', href=re.compile(''+user_input)) 
if links: 
    for link in links: 
     print urljoin(base_url, link['href']) 
else: 
    print "no streams available" 
0

Sie Ihre find_all Methodenaufruf zu einer Variablen speichern kann und überprüfen Sie die Länge davon:

import random 
from bs4 import BeautifulSoup 
import urllib2 
import re 
from urlparse import urljoin 

user_input = raw_input ("Search for Team = "); 


resp = urllib2.urlopen("http://idimsports.eu/football.html") 
soup = BeautifulSoup(resp, from_encoding=resp.info().getparam('charset')) 

base_url = "http://idimsports.eu" 
links = soup.find_all('a', href=re.compile(''+user_input)) 
if len(links) == 0: 
    print "no streams available" 
else: 
    for link in links: 
     print urljoin(base_url, link['href']) 
+0

Nur neugierig, warum Sie meine Antwort akzeptiert und dann nicht akzeptiert? – heinst