Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755

ООП для парсинга сайтов

24.08.2020, 18:44. Показов 5751. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код части обучающих уроков написан с ООП. Как Вы думаете, достаточно того, что знаю (судя по общению на форуме на эту тему) или если нет, то по каких ключевым словам поискать, что надо подучить? Или надо всё ООП выучить, чтобы изучать парсинг по урокам? БьютифулСуп не смотрю. Хочу изучить на основе других модулей сначала.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.08.2020, 18:44
Ответы с готовыми решениями:

Функции для парсинга многостраничных сайтов
Прошу подсказать названия функций в библиотеках парсинга, которые предназначены для сбора информации не с одной страницы, а когда надо...

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

Во время парсинга сайтов не отображаются теги и вообще вся информация после ::before
Я пытался спарсить данный с гугл диска, используя bs4 и requests. Но во время парсинга понял, что не могу найти теги после ::before. Это...

16
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
24.08.2020, 18:45
Цитата Сообщение от supmener Посмотреть сообщение
то по каких ключевым словам поискать,
по ключевым словам "Марк Лутц Изучаем Пайтон скачать"
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
24.08.2020, 18:45
Судя по этому вопросу — https://www.cyberforum.ru/post14798866.html — ты не умеешь читать код. Без разницы, в какой парадигме он написан.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2020, 18:50
Зачем тебе ООП? Хочешь парсить сайты - парсь. Только в руки возьми requests+soup+lxml или что-нибудь подобное. Пользоваться готовыми классами (из этих библиотек) много ума не надо.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.08.2020, 19:02  [ТС]
soup - имеется в виду БьютифулСуп?
Если не ошибаюсь, в уроке по lxml автор показывал код с ООП, в то же время сказал, что для тех, кто не знает, покажет потом без него. Другие уроки по парсингу в определенный момент переставал понимать. Думаю, может быть из-за того, что там ООП.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2020, 19:06
Угу
Bash
1
2
3
4
cat requirements.txt 
requests
beautifulsoup4
lxml
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.08.2020, 19:24  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
cat
А что это значит?

А зачем beautifulsoup4, если есть lxml?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2020, 19:36
Содержимое файла вывел на консоль.

lxml-парсер в разы быстрее работает, хотя не переваривает некоторые сайты.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
24.08.2020, 21:12
supmener, Я с парсингом знаком совсем немного, начал было и забросил. Поэтому знаком только с одной технологией парсинга, это с помощью фреймворка Scrapy . Там знание ООП обязательно. Вот здесь дается пример парсинга с помощью Scrapy
https://pycoder.ru/make-simple-spider-scrapy/
Там нужно создавать структуру каталогов для парсинга.
А вот пример кода для парсинга, размещаемого в одном из каталогов
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# python 3
import scrapy
from urllib.parse import urljoin
 
 
class PycoderSpider(scrapy.Spider):
    name = "pycoder"
    start_urls = [
         'http://pycoder.ru/?page=1',
    ]
    visited_urls = []
 
    def parse(self, response):
        if response.url not in self.visited_urls:
            self.visited_urls.append(response.url)
            for post_link in response.xpath(
                    '//div[@class="post mb-2"]/h2/a/@href').extract():
                url = urljoin(response.url, post_link)
                print(url)
 
            next_pages = response.xpath(
                    '//li[contains(@class, "page-item") and'
                    ' not(contains(@class, "active"))]/a/@href').extract()
            next_page = next_pages[-1]
 
            next_page_url = urljoin(response.url+'/', next_page)
            yield response.follow(next_page_url, callback=self.parse)
Но лично что меня остановило, это необходимость изучать для данной технологии язык XPath , который довольно нудный.
Хотя не только это, а то, что парсинг пишется свой на каждый сайт, для того, что бы отслеживать изменения информации на этом сайте. Как оказалось, для меня это не настолько интересно, что бы изучать нудный язык XPath.
Может конечно другие технологии парсинга менее трудоемки, я не знаю.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
24.08.2020, 21:22  [ТС]
Благодарю. В XPath почти что уже выучил многое из него, надо повторить для закрепления материала.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Содержимое файла вывел на консоль
Не понял, что Вы имели в виду.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.08.2020, 08:41
Забей. Просто считай, что существует где-то файл requirements.txt со следующим содержимым
Code
1
2
3
requests
beautifulsoup4
lxml
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
25.08.2020, 09:12  [ТС]
Теперь понял, что cat - это команда для вывода содержимого requirements.txt в консоль.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
25.08.2020, 16:40  [ТС]
Начал изучать ООП полностью.
В сложных случаях Scrapy используется совместно с Selenium или похожей программой. А ещё какие из них?
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
25.08.2020, 18:33
Цитата Сообщение от supmener Посмотреть сообщение
Начал изучать ООП полностью.
Полностью для парсинга я думаю Вам не нужно. Достаточно если из тома 2 книги Лутц М. Изучаем Python (том 2, 5-е издание, 2019) изучить только часть VI, все главы. И то, глава 30. "Перегрузка операций" скорее всего не понадобится.
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.08.2020, 18:47
Вообще вопрос звучит как "Я хочу изучить арифметические операции, которые мне могут пригодиться для парсинга сайтов". Да никаким боком (почти) парсинг не связан с ООП.

Хочешь парсить сайты - для общего развития почитай про dns/ip/маршрутизацию/nat/модель osi/http/https. Поставь wireshark - погоняй http-трафик.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
25.08.2020, 19:22  [ТС]
Для чтения гуглить, что попадется или какую - то определенную документацию?
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
26.08.2020, 13:06
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Да никаким боком (почти) парсинг не связан с ООП.
Смотря какие технологии парсинга Вы используете. Как я показал выше для использования технологии парсинга базирующейся на фреймворке Scrapy без ООП Вы работать не сможете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2020, 13:06
Помогаю со студенческими работами здесь

Библиотека для парсинга js сайтов
Все доброго времени суток! Подскажите есть ли какая нибудь библиотека для парсинга сайтов которые после загрузки скелета догружается с...

QT - класс для парсинга сайтов
Здравствуйте! Я совсем недавно начал изучать QT. Раньше изучал только С++. Сейчас стоит задача написать приложение, которое будет парсить...

Компоненты для парсинга сайтов
Добрый день! Использую компоненты EmbeddedWB Version_14.70 для парсинга информации в сети, но данные компоненты уже давно не...

Методики для парсинга сайтов
Есть сайт где ежеминутно ( а иногда и раньше ) обновляется некоторая инфа. API конечно же не предоставляет. Подскажите методики как...

Какой язык выбрать для парсинга сайтов?
Пишу парсер сайта на питоне (вытаскиваю данные со страниц, которые генерятся с js, обрабатываю их, делаю различные арифметические...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru