#python #python-3.x #web-scraping #beautifulsoup #python-requests
Вопрос:
Попытка извлечения URL-адресов из массива python. Я пытаюсь использовать цикл for, но немного запутался в следующих шагах. URL-адреса были проанализированы с внешнего сайта и сохранены в переменной files.
import requests from bs4 import BeautifulSoup as bs r = requests.get('https://earth-info.nga.mil/index.php?dir=coordsysamp;action=gars-20x20-dloads') soup = bs(r.content, 'html.parser') files = ['https://earth-info.nga.mil/' i['href'] for i in soup.select('area')] print(files)
Комментарии:
1.
for file in files: print(file)
2. Я пытаюсь использовать библиотеку запросов, эта строка просто выводит каждый URL-адрес в консоли, нет?
3. ДА. Это правильно. Что ты хочешь сделать? Вы хотите повторить и извлечь thml из этих URL-адресов?
4. Если вы хотите использовать URL-адреса для извлечения html-кода из них, просто сделайте это
for file in files: r = requests.get(file)
5. Я пытаюсь загрузить URL-адреса, которые мне удалось запросить в массиве файлов. Я хочу автоматизировать эту задачу, так как в этом массиве файлов более 300 URL-адресов. Также там, где я мог бы выбрать путь к тому месту, где они должны быть расположены.
Ответ №1:
import requests from bs4 import BeautifulSoup as bs r = requests.get('https://earth-info.nga.mil/index.php?dir=coordsysamp;action=gars-20x20-dloads') soup = bs(r.content, 'html.parser') files = ['https://earth-info.nga.mil/' i['href'] for i in soup.select('area')] for file in files: r = requests.get(file) # CODE HERE TO AUTOMATE WHATEVER YOU WANT TO DO