Python Функция газеты не читает URL-адрес статьи в течение l oop? - PullRequest
0 голосов
/ 14 апреля 2020

Извиняюсь, если это глупый вопрос - я новичок в Python и больше знаком с Excel VBA.

Я пытаюсь получить Python l oop через несколько размещенных URL-адресов статей в документе Excel и создавать резюме различных URL-адресов. Цель состоит в том, чтобы заголовки статей, резюме и URL-адреса экспортировались в новый Excel (или другую вкладку). (конечной целью было бы поискать релевантные новости и подвести итоги, но я работаю над этим!)

У меня, однако, есть проблемы с получением функции Newspaper Article для чтения URL, который передается через из списка, который я создаю. Когда я печатаю URL, он выглядит точно так же, как если бы я только что вставил копию и установил url = 'значение вставленной копии'. Однако, когда я go запускаю функцию «Article» для этого URL-адреса, он, похоже, неправильно читает URL-адрес. Они хранятся в списке в виде строки. Не уверен, что я могу делать неправильно. Буду признателен за любую помощь !!

# Import the libraries
import nltk
from newspaper import Article
import openpyxl

# import the URLs from the Excel
from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\Python\RunPythonScript.xlsm')  # Work Book
ws = wb.get_sheet_by_name('URLs')  # Work Sheet
column = ws['A']  # Column
column_list = [column[x].value for x in range(len(column))] # create a list
url_list = list(filter(None, column_list)) # remove blanks
url_list.pop(0) # remove title

# start loop
x = 0
while x < len(url_list):


   url = str("'" + url_list[x] + "'") # set url  
   article = Article(url) # Get the article ### seems to be where error is ###
   print(article)

   x = x + 1 # move to next url

Я получаю следующий вывод от python:

<newspaper.article.Article object at 0x07DADB38>
<newspaper.article.Article object at 0x0A698670>
<newspaper.article.Article object at 0x07DADB38>
<newspaper.article.Article object at 0x0A698670>
<newspaper.article.Article object at 0x07DADB38>
<newspaper.article.Article object at 0x0A698670>
<newspaper.article.Article object at 0x07DADB38>
<newspaper.article.Article object at 0x0A698670>
<newspaper.article.Article object at 0x07DADB38>
<newspaper.article.Article object at 0x0A698670>

Вместо печати статьи, кажется, что в URL-адресе произошла ошибка ,

Есть идеи? Заранее спасибо !!

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Документация https://newspaper.readthedocs.io/en/latest/ довольно ясна.

Кажется, вам нужно изменить свой код примерно так:

...
while x < len(url_list):


   url = str("'" + url_list[x] + "'") # set url  
   article = Article(url)
   article.download()
   article.parse()
   print(article.authors)
   print(article.publish_date)
   print(article.text)
   print(article.top_image)  
   # And so on and so far...

   x = x + 1 # move to next url
0 голосов
/ 14 апреля 2020

При вызове print() для объекта создается строковое представление объекта путем вызова его метода str .

Если вам нужно напечатать несколько данные из Article, например, его URL, выполните:

print(article.url)

Подробнее о Article здесь: https://newspaper.readthedocs.io/en/latest/

...