Python beautifulsoup get link

Парсер ссылок средствами Beautifulsoup

Статья будет простая и для кого то будет из разряда «как нарисовать сову», но для меня это неважно, ибо материал все равно кому-нибудь пригодится.

Речь пойдет о библиотеке Beautfulsoup и в качестве искомых данных будут URL адреса на ссылки, которые на языке HTML размечаются как ссылка, для этого будем ловить значения тега и следующего за ним атрибута href.

Импортируем библиотеку requests:

и библиотеку bs4, откуда вызываем объект супа:

from bs4 import BeautifulSoup
url = 'https://yandex.ru/' r = requests.get(url) soup_ing = str(BeautifulSoup(r.content, 'lxml'))

предварительно кодируем переменную soup_ing:

сохраняем контент в файл 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'):

и выводя содержимое в виде ссылок:

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()

Источник

how to get all page urls from a website

Web scraping is the technique to extract data from a website.

The module BeautifulSoup is designed for web scraping. The BeautifulSoup module can handle HTML and XML. It provides simple method for searching, navigating and modifying the parse tree.

from BeautifulSoup import BeautifulSoup
import urllib2
import re

html_page = urllib2.urlopen(«https://arstechnica.com»)
soup = BeautifulSoup(html_page)
for link in soup.findAll(‘a’, attrs={‘href’: re.compile(«^http://»)}):
print link.get(‘href’)

It downloads the raw html code with the line:

html_page = urllib2.urlopen(«https://arstechnica.com»)

A BeautifulSoup object is created and we use this object to find all links:

soup = BeautifulSoup(html_page)
for link in soup.findAll(‘a’, attrs={‘href’: re.compile(«^http://»)}):
print link.get(‘href’)

from BeautifulSoup import BeautifulSoup
import urllib2
import re

html_page = urllib2.urlopen(«https://arstechnica.com»)
soup = BeautifulSoup(html_page)
links = []

for link in soup.findAll(‘a’, attrs={‘href’: re.compile(«^http://»)}):
links.append(link.get(‘href’))

print(links)

from BeautifulSoup import BeautifulSoup
import urllib2
import re

def getLinks(url):
html_page = urllib2.urlopen(url)
soup = BeautifulSoup(html_page)
links = []

for link in soup.findAll(‘a’, attrs={‘href’: re.compile(«^http://»)}):
links.append(link.get(‘href’))

return links

print( getLinks(«https://arstechnica.com») )

Источник

Читайте также:  Trojan downloader java agent an
Оцените статью