2017-03-11 4 views
1
from bs4 import BeautifulSoup 
import requests 
import time 

urls = ['http://www.soku.com/search_playlist/q_python_orderby_1_limitdate_0?site=14&page={}&spm=a2h0k.8191403.0.00'.format(str(i)) for i in range(1,30,1)] 

def UUrl(urls): 

    def Url(url): 
     single_urls = [] 
     time.sleep(1) 
     wb_data = requests.get(url) 
     soup = BeautifulSoup(wb_data.text,'lxml') 
     for single_urls in soup.find_all(class_ = "album_tit"): 
      single_url = (single_urls.a.get('href')) 
      return single_url 
      # print(single_url) 

    for url in urls: 
     Url(url) 

def get_url_title(urls,data = None): 
    urlsss = UUrl(urls) 
    for surl in urlsss: 
     wb_data = requests.get(surl) 
     soup = BeautifulSoup(wb_data.text,'lxml') 
     urlss = soup.find_all(class_="title short-title") 
     titles = soup.find_all(class_="title short-title") 

     for t_url,title in zip(urlss,titles): 
      data = { 
       'title':title.get_text(), 
       'url': (t_url.a.get('href')) 
      } 
      print(data) 

get_url_title(urls) 

Antwort

1

Es bedeutet, dass Sie über einen Nullwert iterieren. Die supp.findall-Funktion gibt möglicherweise keine Ergebnisse zurück. Wenn das passiert, gibt die Funktion einen Nicht-Typ zurück, wie eine Null für Python. Dann versuchen Sie eine for-Schleife über etwas zu machen, das nicht existiert. Es gibt einige Bereiche in Ihrem Code, die diesen Fehler verursachen könnten, aber im Grunde bedeutet dies nur, dass die Variable nach dem Ausdruck IN in Ihrer for-Schleife keinen Wert hat. Sie können a. if supp.find_all (class_ = "album_tit") ist NoneType: print ("finde alle Funktionen, die keinen Wert zurückgeben")

Verwandte Themen