Получить все ссылки с веб-страницы - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь получить все ссылки с этого веб-сайта

Мой код:

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

url_meva = https://www.recetasgratis.net'

uClient = uReq(url_meva)
pag_html = uClient.read()
uClient.close()

pag_soup = soup(pag_html, "html.parser")

containers = pag_soup.findAll("a",{"class":"titulo titulo--bloque"})

Если я наберу len (контейнеры), результат будет 43и это должно быть примерно 25000.

Почему я получаю только те 43, а не остальные?

Идея состоит в том, чтобы получить ссылки на рецепты. Я знаю, что сайт имеет такую ​​же структуру для рецептов.

Спасибо

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Ваша текущая реализация очищает только текущую домашнюю страницу.

Для начала, если вы хотите начать с получения всех 25 тыс. Ссылок на рецепты, вам придется запускать это действие для каждой страницы их каталога, начиная с https://www.recetasgratis.net/busqueda/pag/1 до 574.

Вы можете сделать это, создав URL-адрес с помощью цикла for и пройдя по каждой странице, выполнив

pag_soup.findAll("a",{"class":"titulo titulo--bloque"}) для каждой страницы.

В этот момент у вас должны быть все ссылкии сможет начать на самом деле сбор данных с каждой страницы, реализация которой будет полностью вашей.

Я предлагаю использовать какое-то плоское хранилище данных для отслеживания собранных URL. Хранить все в памяти не рекомендуется, так как одно исключение нарушит весь ваш поток страниц в 500+ и заставит вас начать все сначала.

Кроме того, если это не ваш веб-сайт, рассмотрите юридические последствия того, что вы делаете.

0 голосов
/ 05 ноября 2019

То, что вы получаете, когда читаете содержимое ссылки https://www.recetasgratis.net, представляет собой необработанный текст по ссылке view-source:https://www.recetasgratis.net/, в котором содержится ровно 43 экземпляра класса titulo titulo--bloque. Вам нужно выяснить функции динамической загрузки веб-страницы и использовать ее в своих интересах, чтобы получить список всех ссылок. Удачи с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...