• XSS.stack #1 – первый литературный журнал от юзеров форума

парсер на Python

Volstiny

RAID-массив
Пользователь
Регистрация
24.07.2019
Сообщения
83
Реакции
249
Всем привет. Недавно начал учить язык программирования python. Написал простенький парсер телефонных номеров и электронных почт с сайта prom.ua. Сейчас пишу парсер с olx.ua.
Вот номера телефонов и почт. Может кому-то будет нужно:

Вот код на python:
Python:
import requests
from bs4 import BeautifulSoup


l = 0
all_href = []
all_mail = []
all_phone = []
all_sections = []

base_url = 'https://prom.ua/ua/Kompyuternaya-tehnika-i-programmnoe-obespechenie'
base_r = requests.get(base_url)
base_soup = BeautifulSoup(base_r.content, 'html.parser')
sections_href = base_soup.find_all('div', attrs={'class':'x-category-tile__title-holder'})
for sec in sections_href:
    section_href = sec.find('a', attrs={'class':'x-category-tile__title'})['href']
    all_sections.append(section_href)


for link in all_sections:
    print(link)
    url = 'https://prom.ua' + link
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    div_href = soup.find_all('div', attrs={'class': 'x-gallery-tile__relative'})
    for hr in div_href:
        get_href = hr.find('a', attrs={'class': 'x-gallery-tile__image-holder x-image-holder'})['href']
        all_href.append(get_href)

    for al in all_href:
        r1 = requests.get(al)
        soup1 = BeautifulSoup(r1.content, 'html.parser')
        get_mail = soup1.find('a', attrs={'class': 'x-pseudo-link x-iconed-text__link'})
        all_mail.append(get_mail)
        get_phone = soup1.find('span', attrs={'class':'x-pseudo-link x-iconed-text__link js-product-ad-conv-action'})
        all_phone.append(get_phone)
        l = l + 1
        print(l)



print(all_phone)
print(all_mail)


Жду от вас советов как лучше писать, какие библиотеки лучше использовать для парсинга.
Всем хорошего дня☺
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не понял
Дешифрую тебе текст данного уникума который не может объяснить косяки кода новичку.
Лучше делай смену рандомную User-Agenta, если юзаешь Суп (BeautifulSoup).
Ну если я верно понял всё что хотел сказать оратор выше имхо ёпт
 
Дешифрую тебе текст данного уникума который не может объяснить косяки кода новичку.
Лучше делай смену рандомную User-Agenta, если юзаешь Суп (BeautifulSoup).
Ну если я верно понял всё что хотел сказать оратор выше имхо ёпт
понял, спасибо. Сейчас дописываю парсер OLX, скоро закину на форум:)
 
Дешифрую тебе текст данного уникума который не может объяснить косяки кода новичку.
Лучше делай смену рандомную User-Agenta, если юзаешь Суп (BeautifulSoup).
Ну если я верно понял всё что хотел сказать оратор выше имхо ёпт
Ну ка не обзывайся, времени не было, если бы он в лс написал, я бы рассказал всё.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ну ка не обзывайся, времени не было, если бы он в лс написал, я бы рассказал всё.
Словом "Уникум" я не хотел тебя обозвать или оскорбить.) Просто сарказм и лёгкое остроумие relax
ТС - можешь ещё разбить свой скрипт по функциям. Будет интересно.
 
Python:
l = 0
...
for al in all_href:
    ...

    l = l + 1

Вот здесь бы enumerate использовать. Переменные называть по PEP-8.

Кроме того, как и сказали выше, разбей код на функции (методы класса, при желании). URL и классы CSS вынеси в константы (или атрибуты класса).
 
Python:
l = 0
...
for al in all_href:
    ...

    l = l + 1

Вот здесь бы enumerate использовать. Переменные называть по PEP-8.

Кроме того, как и сказали выше, разбей код на функции (методы класса, при желании). URL и классы CSS вынеси в константы (или атрибуты класса).
за enumerate я не знал даже, огромное спасибо. Да другой парсер я уже писал через функции - https://xss.pro/threads/35260/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Python:
l = 0
...
for al in all_href:
    ...

    l = l + 1

Вот здесь бы enumerate использовать. Переменные называть по PEP-8.

Кроме того, как и сказали выше, разбей код на функции (методы класса, при желании). URL и классы CSS вынеси в константы (или атрибуты класса).
Тоже был не в курсе, спасибо человек добрый
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх