Python-Scraping http Dataframe дает "чтение закрытого файла" в методе fancyUrlopener - PullRequest
0 голосов
/ 01 октября 2019

При извлечении файлов http из FakeNewCorpusSpanish через некоторое время я получаю эту ошибку

Ошибка чтения закрытого файла

Используемая последовательность: открыть файл Excel,переведите его как df_http link DataFrame, разработайте функцию для очистки http-ссылок по частям с помощью итераций с FancyUrlOpener и Beautifulsoup. Когда я вызываю функцию, она работает нормально до переменного числа итераций и через некоторое время останавливается при указанной ошибке. Попытались изменить количество итераций на 5, 10, 20 .., используя задержку по времени, изменить на random_agents, поместить вызов FancyUrlopener вне функции, сбросить df для работы только с нужным количеством итераций и наконец, использовал метод parse.unquote. Я всегда получаю одну и ту же ошибку.

def agrupa_textos(df_link,rango):
grupo=[]
class MyOpener(FancyURLopener,object):
    version = choice(user_agents)
myopener=MyOpener()
for i in range(0,rango):
    texto= df_link_part1.loc[i]
    try:
        html = urlopen(texto)
    except:
        ptag="NA"
    else:
        texto_html=myopener.open(urllib.parse.unquote(texto)).read()
        soup=BeautifulSoup(texto_html,"lxml")
        ptag=soup.findAll('p')
    grupo.append(ptag)
        #time.sleep(20)
return(grupo)

total=len(df_link)-1
grupo2=[]
inicio=0
for i in range(0,total):
    cantidad=inicio+9
    df_link_part1 = df_link.iloc[inicio:cantidad]
    df_link_part1 = df_link_part1.reset_index(drop=True)
    rango=cantidad-inicio
    rango1=rango+1
    grupo=agrupa_textos(df_link_part1,rango)
    for s in range(0,rango):
        grupo2.append(grupo[s])
    inicio=inicio+rango1
    print(i)

Ответ и ошибка

...