0
def convert():
    for url in url_list:
        news=Article(url)
        news.download()
        while news.download_state != 2:
            time.sleep(1)
        news.parse()
        l.append(
            {'Title':news.title, 'Text': news.text.replace('\n',' '), 'Date':news.publish_date, 'Author':news.authors}
        )

convert()
df = pd.DataFrame.from_dict(l)
df.to_csv('Amazon_try2'+'.csv',encoding='utf-8', index=False)

函数 convert() 遍历一个 url 列表并处理它们中的每一个。每个 url 都是文章的链接。我正在获取文章的重要属性,例如作者、文本等,然后将其存储在数据框中。之后,我将数据框转换为 csv 文件。该脚本运行了大约 5 个小时,因为 url_list 中有 589 个 url。但我仍然无法获取 csv 文件。有人可以找出我哪里出错了。

4

2 回答 2

0

假设这是你的整个程序,你需要从 convert 中返回 l。

def convert():
    for url in url_list:
        news=Article(url)
        news.download()
        while news.download_state != 2:
            time.sleep(1)
        news.parse()
        l.append(
            {'Title':news.title, 'Text': news.text.replace('\n',' '), 'Date':news.publish_date, 'Author':news.authors}
        )
    return l 

l = convert()
df = pd.DataFrame.from_dict(l)
df.to_csv('Amazon_try2'+'.csv',encoding='utf-8', index=False)
于 2018-06-12T09:50:52.323 回答
0

可能你的功能在这里停止:

    while news.download_state != 2:
        time.sleep(1)

它正在等待下载状态的变化,但它永远不会发生。您的函数还应该返回一个列表

像这样的东西应该工作:

def convert():
    for url in url_list:
        news=Article(url)
        news.download()

        news.parse()
        l.append(
            {'Title':news.title, 'Text': news.text.replace('\n',' '), 'Date':news.publish_date, 'Author':news.authors}
        )
    return l 

l = convert()
df = pd.DataFrame.from_dict(l)
df.to_csv('Amazon_try2'+'.csv',encoding='utf-8', index=False)
于 2018-06-12T09:54:14.803 回答