Как я могу проанализировать несколько URL-адресов из текстового файла с помощью BeautifulSoup?

#python #beautifulsoup

Вопрос:

Я пытался очистить значения нескольких URL-адресов с помощью BeautifulSoup.

Я могу успешно сделать это для одного URL-адреса, но я надеюсь получить список из примерно 300 URL-адресов из отдельного текстового файла.

Как мне ссылаться на текстовый файл URL-адресов вместо одного URL-адреса в

source = requests.get('https://notmyrealurl.com').text .

Вот что у меня есть до сих пор:

 import requests
from bs4 import BeautifulSoup

source = requests.get('https://notmyrealurl.com').text

soup = BeautifulSoup(source, features="html.parser")

title = soup.find("meta", attrs={'itemprop': 'acquia_lift:content_keywords'})

print(title["content"] if title is not None else "No meta title given")
 

Ответ №1:

Вы можете использовать open и повторять каждую строку URL-адреса.

 import requests
from bs4 import BeautifulSoup

with open("your_txt.txt") as file:
    for line in file:
        url = line.rstrip()
        source = requests.get(url).text
        soup = BeautifulSoup(source, features="html.parser")
        title = soup.find("meta", attrs={'itemprop': 'acquia_lift:content_keywords'})
        print(title["content"] if title is not None else "No meta title given")
 

Я предполагаю, что ваш txt-файл

 url1.com
url2.com
url3.com
 

Комментарии:

1. Большое вам спасибо за вашу помощь. Этот подход работает.

Ответ №2:

Ваш текстовый файл должен быть списком: ['url1', 'url2', 'url3', '...'] . Вот код конфигурации для чтения текстового файла:

 import requests
from bs4 import BeautifulSoup
# Read your text file
yourtextfile = open('yourtextfile.txt').read()
# import it into list
listurl = list(eval(yourtextfile))
for url in listurl:
    source = requests.get(url).text
    soup = BeautifulSoup(source, features="html.parser")
    title = soup.find("meta", attrs={'itemprop': 'acquia_lift:content_keywords'})
    print(title["content"] if title is not None else "No meta title given")
 

Комментарии:

1. Большое вам спасибо за вашу помощь. Этот подход работает.