Python 3.x TypeError:类型为'的对象;非类型';在Python 3.x上没有len()

Python 3.x TypeError:类型为'的对象;非类型';在Python 3.x上没有len(),python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我对编码是新手,我一直在努力拼凑一页来练习。我几乎准备好了一切,但我不知道为什么会出错 from variables import MY_URL , OUT_FILE import requests from bs4 import BeautifulSoup as soup from urllib.request import urlopen as ureq import ssl ssl._create_default_https_context = ssl._create_unverifie

我对编码是新手,我一直在努力拼凑一页来练习。我几乎准备好了一切,但我不知道为什么会出错

from variables import MY_URL , OUT_FILE
import requests
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as ureq
import ssl

ssl._create_default_https_context = ssl._create_unverified_context

import csv

def agarrar_pagina():

    for i in range(1,22):
        uclient = ureq(MY_URL+'categorias/todas/?page={}'.format(i))
        page_html = uclient.read()
        page_soup = soup(page_html, "html.parser")
        contenedores = page_soup.findAll('div', {'class':'cambur'})
        contenedor=[]
        for link in contenedor:
            link = contenedor.findAll('a',['href'])
            ulink = ureq(MY_URL + link)
            page_link = ulink.read()
            ulink = close()
            uclient.close()

            return page_link
这就是错误所在

`Traceback (most recent call last):
  File "prueba.py", line 93, in <module>
    main()
  File "prueba.py", line 89, in main
    cajitas = seleccionar_caja(pagina)
  File "prueba.py", line 30, in seleccionar_caja
    page_soup = soup(html, "html.parser")
  File "C:\Users\PC\AppData\Local\Programs\Python\Python37\lib\site-packages\bs4\__init__.py", line 
267, in __init__
    elif len(markup) <= 256 and (
TypeError: object of type 'NoneType' has no len()`
`回溯(最近一次呼叫最后一次):
文件“prueba.py”,第93行,在
main()
文件“prueba.py”,第89行,主
cajitas=Selecciator_caja(帕吉纳)
文件“prueba.py”,第30行,selecciator_caja
page_soup=soup(html,“html.parser”)
文件“C:\Users\PC\AppData\Local\Programs\Python\37\lib\site packages\bs4\\uuuuu init\uuuu.py”,第行
267,在初始__

elif len(markup)contendor=[]是空列表。我想你打算用 争夺者

for link in contenedores :
            link = contenedores.findAll('a',['href'])
            ulink = ureq(MY_URL + link)
            page_link = ulink.read()
            ulink = close()
            uclient.close

stacktrace中未提及函数agarar_pagina
。我认为这是因为函数
agarar_pagina
始终返回
None


当在空列表或更正函数上循环时,如果在
findall

中发现任何东西,您的代码就会发生这种情况。您能告诉我们您迄今为止尝试了什么吗?是的,对不起,我没有上传代码。你能给我们一个URL来测试这个问题吗?我用的是这个URL:不。我已经试过了,它给了我同样的错误。无论如何,谢谢:)无论如何,这个for循环对空列表不起作用。错误似乎出现在汤行项目上。您可以试试这个,page_soup=soup(page_html.content,“html.parser”)或page_soup=soup(page_html.text,“html.parser”)