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

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

24.08.2020, 18:44. Показов 5691. Ответов 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 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
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.08.2020, 18:50
Зачем тебе ООП? Хочешь парсить сайты - парсь. Только в руки возьми requests+soup+lxml или что-нибудь подобное. Пользоваться готовыми классами (из этих библиотек) много ума не надо.
1
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
24.08.2020, 19:02  [ТС]
soup - имеется в виду БьютифулСуп?
Если не ошибаюсь, в уроке по lxml автор показывал код с ООП, в то же время сказал, что для тех, кто не знает, покажет потом без него. Другие уроки по парсингу в определенный момент переставал понимать. Думаю, может быть из-за того, что там ООП.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 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,753
24.08.2020, 19:24  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
cat
А что это значит?

А зачем beautifulsoup4, если есть lxml?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 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,753
24.08.2020, 21:22  [ТС]
Благодарю. В XPath почти что уже выучил многое из него, надо повторить для закрепления материала.
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Содержимое файла вывел на консоль
Не понял, что Вы имели в виду.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 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,753
25.08.2020, 09:12  [ТС]
Теперь понял, что cat - это команда для вывода содержимого requirements.txt в консоль.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
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
 Аватар для Рыжий Лис
5972 / 3734 / 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,753
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru