Я пытаюсь почистить корпус новостной статьи для анализа. У меня есть текстовый файл со списком URL-адресов, и я пытаюсь передать их запросам, чтобы можно было очистить страницу с помощью BeautifulSoup. Я могу вытащить URL из текстового файла. Тем не менее, я не правильно передаю этот вывод в request.get (). Когда я даю request.get () явный URL, скрипт работает нормально. Как мне правильно передать request.get () список ссылок из текстового файла? Вот что у меня работает.
import requests
from bs4 import BeautifulSoup
r = requests.get("https://examplewebsite.org/page1")
coverpage = r.content
soup = BeautifulSoup(coverpage, 'html5lib')
file = open("output.txt", "w")
file.write("ITEM:")
paragraphs = soup.find_all("p")[11:-10]
for paragraph in paragraphs:
file.write(paragraph.get_text())
file.write("\n")
file.write("\n")
file.close()
Однако, когда я пытаюсь прочитать из текстовый файл, который представляет собой список ссылок, похоже, проблема в том, как я передаю ссылки на запросы .get (). С одним URL на строку, список ссылок текстового файла выглядит так:
https://examplewebsite.org/page1
https://examplewebsite.org/page2
https://examplewebsite.org/page3
https://examplewebsite.org/page4
Вот как я пытаюсь проработать список ссылок.
f = open('article-list.txt', 'r')
urls = list(f)
for url in urls:
import requests
from bs4 import BeautifulSoup
r = requests.get(url)
coverpage = r.content
soup = BeautifulSoup(coverpage, 'html5lib')
file = open("output.txt", "w")
file.write("ITEM:")
paragraphs = soup.find_all("p")[11:-10]
for paragraph in paragraphs:
file.write(paragraph.get_text())
file.write("\n")
file.write("\n")
print(paragraph.get_text())
file.close()
Я получаю сообщение об ошибке:
AttributeError: 'NoneType' object has no attribute 'get_text'
Это говорит о том, что я неправильно передаю запрос. Если я просто поменяю местами явно определенный URL-адрес, такой как «https://somewebsite.org/page1», тогда скрипт работает и записывает абзацы в файл. Тем не менее, когда я помещаю оператор print(urls)
вверху и даю request.get () явную ссылку, чтобы она не ломалась, я получаю список URL. Однако этот список имеет следующий формат:
['http://examplewebsite.org/page1 \ n', 'http://examplewebsite.org/page2 \ n', 'http://examplewebsite.org/page3 \ n ']
Я думаю, что \ n - это проблема. Я попытался запустить ссылки все вместе, и это не сработало. Также для удобства чтения я бы предпочел размещать каждую ссылку на отдельной строке. Буду очень признателен за любые предложения по решению этой проблемы. Спасибо.