Получение текста с сайта Python
Как получить данный текст с сайта? (См. Картинку (Это пример))
Весь день пытался получить текст с другого сайта, ничего не получалось (Использовал всевозможные библиотеки). Помогите, пожалуйста
(Просто подскажите библиотеку, с которой это точно сделать возможно)
Ответы (1 шт):
Автор решения: Mamba
→ Ссылка
Описание с avito? Пожалуйста...
import requests
from bs4 import BeautifulSoup
url = 'https://www.avito.ru/moskva/sobaki/sobaka_1946261539' # Ваш 2х месячный щенок
resp = requests.get(url)
def get_description(soup):
result = []
# Находим все элементы div с классом item-description-text
ds = soup.findAll('div', class_='item-description-text')
# Перебираем такие дивы (Скорее всего он будет один, но кто его знает...)
for d in ds:
# Так же перебираем все параграфы и заполняем result их значениями
for p in d.findAll('p'):
result.append(p.text)
# Джойним все в одну строку
return ' '.join(result)
soup = BeautifulSoup(resp.text, "lxml")
desc = get_description(soup)
print(desc)
Может еще загружать фотки, да не вопрос...
import requests
import os
import time
from bs4 import BeautifulSoup
url = 'https://www.avito.ru/moskva/sobaki/sobaka_1946261539'
resp = requests.get(url)
class RandomNameGenerator:
def __init__(self):
self.t = int(round(time.time() * 1000))
def generate(self, extension):
self.t += 1
return hex(self.t) + extension
# Получаем ссылки на изображения
def get_images_src(soup):
result = []
frames = soup.findAll("div", class_="gallery-img-frame")
for frame in frames:
if 'data-url' in frame.attrs:
image = frame.attrs['data-url']
result.append(image)
return result
# Скачиваем изображения по ссылкам
def download(link, directory, rng):
r = requests.get("https:" + link, allow_redirects=True)
os.makedirs(directory, exist_ok=True)
_, file_extension = os.path.splitext(link)
filename = rng.generate(file_extension)
filepath = directory + filename
open(filepath, 'wb').write(r.content)
return filepath
rng = RandomNameGenerator()
soup = BeautifulSoup(resp.text, "lxml")
images = get_images_src(soup)
for image in images:
fp = download(image, "./avito_img/", rng)
print(fp)
