【问题标题】:What does error TypeError: 'NoneType' object is not iterable mean? [duplicate]错误 TypeError: 'NoneType' object is not iterable 是什么意思? [复制]
【发布时间】:2017-08-01 15:42:27
【问题描述】:
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)

【问题讨论】:

    标签: python


    【解决方案1】:

    这意味着您正在迭代一个空值。 soup.findall 函数可能没有返回任何结果。如果发生这种情况,该函数将返回非类型,有点像 python 的 null。然后你试图对不存在的东西做一个 for 循环。您的代码中有几个区域可能会引发此错误,但基本上它只是意味着您的 for 循环中表达式 IN 之后的变量没有值。你可以做一个。 if soup.find_all(class_ = "album_tit") 是 NoneType: print("查找所有不返回值的函数")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 2017-10-14
      • 2020-02-03
      • 1970-01-01
      相关资源
      最近更新 更多