Как написать скрипт для парсинга всех страниц интернет-магазина, за исключением страниц с карточками товаров?

Как можно определить страницу с контактной информацией в веб-краулере, чтобы собирать Email, ссылки на социальные сети и т.п.? Кроме основных страниц сайта, как исключить из обхода страницы с карточками товаров при помощи RegExp фильтрации?
  • 12 мая 2024 г. 7:40
Ответы на вопрос 2
Для парсинга всех страниц интернет-магазина, за исключением страниц с карточками товаров, можно написать скрипт на Python, используя библиотеку requests для загрузки страниц и библиотеку BeautifulSoup для парсинга HTML-кода. 

Пример скрипта:

```python
import requests
from bs4 import BeautifulSoup

url = 'https://example.com'  # URL интернет-магазина
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

for link in soup.find_all('a', href=True):
    if 'product' not in link['href']:  # исключаем страницы с карточками товаров
        print(link['href'])
```

Чтобы определить страницу с контактной информацией в веб-краулере, можно использовать различные признаки на странице, такие как наличие ключевых слов типа "контакты", "связь", "email" и т.п. Также можно анализировать структуру HTML-кода, например, наличие определенных тегов или классов.

Для исключения из обхода страниц с карточками товаров при помощи RegExp фильтрации, можно модифицировать скрипт выше, добавив регулярное выражение для исключения определенных URL-адресов:

```python
import re

for link in soup.find_all('a', href=True):
    if not re.search(r'/product/\d+', link['href']):  # исключаем страницы с карточками товаров
        print(link['href'])
``` 

Это регулярное выражение будет исключать все ссылки, содержащие "/product/" и последующую цифровую часть в URL-адресе.
А ты глазами как распознаешь страницу с контактами? 
По содержимому. Наличие или отсутствие определенного текста более чем достаточно.

Самый универсальный метод даже там где сайты генерируют контент на js и весь интерфейс гуляет туда сюда, а классы именуют случайно, типа как на ozon и кучи других топовых сайтов, только по содержимому и спасаешься (я еще в анализ включаю координаты элемента на экране, чтобы между элементами можно было задавать вопрос - найди все дивы что справа от элемента с текстом блаблабла

p.s. регулярки это прошлыв век, очень мало сайтов позволят себя так просто анализировать.
Обычно сайт парсят как xml/html с помощью любого парсера на твой выбор и язык (например для php я часто пользовался simplehtmldom но часто и штатных xml парсеров хватает

ну а если сайт генерируется динамически на js то мне больше нравится инжектить на страницу свой javascript в полноценном браузере
Похожие вопросы