Статья будет простая и для кого то будет из разряда "как нарисовать сову", но для меня это неважно, ибо материал все равно кому-нибудь пригодится.
Речь пойдет о библиотеке Beautfulsoup и в качестве искомых данных будут URL адреса на ссылки, которые на языке HTML размечаются как ссылка, для этого будем ловить значения тега и следующего за ним атрибута href.
Импортируем библиотеку requests:
import requests
и библиотеку bs4, откуда вызываем объект супа:
from bs4 import BeautifulSoup
получаем контент с сайта:
url = 'https://yandex.ru/'
r = requests.get(url)
soup_ing = str(BeautifulSoup(r.content, 'lxml'))
предварительно кодируем переменную soup_ing:
soup_ing = soup_ing.encode()
сохраняем контент в файл test.html:
with open("test.html", "wb") as file:
file.write(soup_ing)
создаем метод fromSoup, который будет искать ссылки и
открываем сохраненный файл:
def fromSoup():
html_file = ("test.html")
html_file = open(html_file, encoding='UTF-8').read()
soup = BeautifulSoup(html_file, 'lxml')
создаем объект soup, чтобы передать ему содержание файла:
soup = BeautifulSoup(html_file, 'lxml')
объявляем что поиск пройдет по всем тегам a:
for link in soup.find_all('a'):
ссылаясь на атрибут href:
print(link.get('href'))
и выводя содержимое в виде ссылок:
fromSoup()
весь код:
import requests
from bs4 import BeautifulSoup
url = 'https://yandex.ru/'
r = requests.get(url)
soup_ing = str(BeautifulSoup(r.content, 'lxml'))
soup_ing = soup_ing.encode()
with open("test.html", "wb") as file:
file.write(soup_ing)
def fromSoup():
html_file = ("test.html")
html_file = open(html_file, encoding='UTF-8').read()
soup = BeautifulSoup(html_file, 'lxml') # name of our soup
for link in soup.find_all('a'):
print(link.get('href'))
fromSoup()