Как перебирать строки csv для извлечения текста из URL с помощью панд - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть csv из нескольких новостных статей, и я надеюсь использовать пакет magazine3k для извлечения основного текста из этих статей и сохранения их в виде 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 голосов
/ 07 февраля 2019

Поскольку все 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 до тех пор, пока не закончатся URL-адреса.

Надеюсь, это поможет!

...