Как ввести список URL-адресов, сохраненных в формате .txt, в программу Python? - PullRequest
0 голосов
/ 06 января 2019

У меня есть список URL-адресов, сохраненных в файле .txt, и я хотел бы передать их по одной в переменную с именем url, к которой я применяю методы из библиотеки python magazine3k. Программа извлекает содержимое URL, авторов статьи, резюме текста и т. Д., А затем печатает информацию в новый файл .txt. Сценарий прекрасно работает, когда вы указываете один URL-адрес в качестве пользовательского ввода, но что мне делать, чтобы читать из .txt с тысячами URL-адресов?

Я только начинаю с Python, по сути это мой первый скрипт, поэтому я попытался просто сказать url = (myfile.txt), но я понял, что это не сработает, потому что я должен прочитать файл одной строкой в время. Поэтому я попытался применить read() и readlines() к нему, но он не будет работать должным образом, потому что 'str' object has no attribute 'read' или 'readlines'. Что я должен использовать, чтобы прочитать те URL-адреса, сохраненные в файле .txt, каждый из которых начинается с новой строки, как входные данные моего простого сценария? Должен ли я преобразовать строку во что-то еще?

Выписка из кода, строки 1-18:

from newspaper import Article
from newspaper import fulltext
import requests


url = input("Article URL: ")
a = Article(url, language='pt')
html = requests.get(url).text
text = fulltext(html)
download = a.download()
parse = a.parse()
nlp = a.nlp()
title = a.title
publish_date = a.publish_date
authors = a.authors
keywords = a.keywords
summary = a.summary

Позже я построил некоторые функции для отображения информации в нужном формате и сохранения ее в новом .txt. Я знаю, что это очень простой вопрос, но я честно застрял ... Я читал другие подобные вопросы здесь, но я не мог правильно понять или применить предложения. Итак, как лучше всего прочитать URL-адреса из файла .txt, чтобы передавать их по одному в переменную url, к каким другим методам они применяются для извлечения его содержимого?

Это мой первый вопрос, и я понимаю, что форум предназначен для более опытных программистов, но я был бы очень признателен за помощь. Если мне нужно что-то отредактировать или уточнить в этом посте, пожалуйста, дайте мне знать, и я немедленно исправлю.

Ответы [ 2 ]

0 голосов
/ 06 января 2019

Вот один из способов сделать это:

from newspaper import Article
from newspaper import fulltext
import requests

with open('myfile.txt',r) as f:
    for line in f:
        #do not forget to strip the trailing new line
        url = line.rstrip("\n")
        a = Article(url, language='pt')
        html = requests.get(url).text
        text = fulltext(html)
        download = a.download()
        parse = a.parse()
        nlp = a.nlp()
        title = a.title
        publish_date = a.publish_date
        authors = a.authors
        keywords = a.keywords
        summary = a.summary
0 голосов
/ 06 января 2019

Это может помочь вам:

url_file = open('myfile.txt','r')
for url in url_file.readlines():
   print url
url_file.close()

Вы можете применить его к своему коду следующим образом

from newspaper import Article
from newspaper import fulltext
import requests

url_file = open('myfile.txt','r')
for url in url_file.readlines():
  a = Article(url, language='pt')
  html = requests.get(url).text
  text = fulltext(html)
  download = a.download()
  parse = a.parse()
  nlp = a.nlp()
  title = a.title
  publish_date = a.publish_date
  authors = a.authors
  keywords = a.keywords
  summary = a.summary
url_file.close()
...