如何使用熊猫遍历csv行以从URL提取文本

时间:2019-02-06 22:24:51

标签: python pandas python-newspaper

我有一堆新闻的csv,我希望使用报纸3k包从那些文章中提取正文并将其另存为txt文件。我想创建一个脚本,该脚本遍历csv中的每一行,提取URL,从URL中提取文本,然后将其另存为唯一命名的txt文件。有人知道我该怎么做吗?我是Python的新手,很抱歉,如果这很简单。

我只有下面的代码。在弄清楚如何将每个正文文本另存为txt文件之前,我认为我应该尝试并仅获取脚本以从csv中的每一行打印文本。

import newspaper as newspaper
from newspaper import Article
import sys as sys
import pandas as pd

data = pd.read_csv('/Users/alexfrandsen14/Desktop/Projects/newspaper3k- 
 scraper/candidate_coverage.csv')

data.head()

for index,row in data.iterrows():
    article_name = Article(url=['link'], language='en')
    article_name.download()
    article_name.parse()
    print(article_name.text)

1 个答案:

答案 0 :(得分:0)

由于所有url都在同一列中,因此使用for循环直接访问该列更加容易。我将在这里介绍一些解释:

# to access your specific url column
from newspaper import Article
import sys as sys
import pandas as pd

data = pd.read_csv('/Users/alexfrandsen14/Desktop/Projects/newspaper3k-scraper/candidate_coverage.csv')

for x in data['url_column_name']: #replace 'url_column_name' with the actual name in your df 
    article_name = Article(x, language='en') # x is the url in each row of the column
    article.download()
    article.parse()
    f=open(article.title, 'w') # open a file named the title of the article (could be long)   
    f.write(article.text)
    f.close()

我以前没有尝试过这个软件包,但是阅读教程后,这似乎应该可以工作。通常,您通过以下行访问数据框中的url列: for x in data['url_column_name']:您将用该列的实际名称替换“ url_column_name”。

然后,x将是第一行中的url,因此您可以将其传递给Article(根据教程的判断,您无需在x周围使用方括号)。它将首先下载该x并进行解析,然后打开一个带有文章标题名称的文件,将文本写入该文件,然后关闭该文件。

然后它将对第二个x和第三个x进行相同的操作,直到您用完所有网址为止。

我希望这会有所帮助!