Парсер Яндекс. Каталога

Discussion in 'Инструменты' started by CardDevil, 19 Jun 2015.

  1. CardDevil

    CardDevil New Member

    Joined:
    19 Jun 2015
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Всем привет! Хочу представить небольшой самописный софт для парсинга сайтов из Яндекс. Каталога, написанный на Python.
    В моем исходном коде я парсил категорию
    https://yaca.yandex.ru/yca/cat/Media/Online_Media/
    Можете просто выбрать другую категорию и заменить URL.

    Итак, исходники:

    До встречи!
     
    #1 CardDevil, 19 Jun 2015
    Last edited by a moderator: 19 Jun 2015
    CHEBURNATOR likes this.
  2. CHEBURNATOR

    CHEBURNATOR New Member

    Joined:
    9 May 2015
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Спасибо, отличный парсер.
    Правда пришлось попариться с установкой библиотек Buytefulsoup (не силен в питоне) но все заработало.
    У меня вопрос - возможно ли как то в данном парсере реализовать запись полученного в файл?
    Просьба большая ответить вариантом кода, ибо просто команда или оператор мне ничего не даст, так как не силен в языке.
    Спасибо большое.
     
  3. CHEBURNATOR

    CHEBURNATOR New Member

    Joined:
    9 May 2015
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Всем привет, перешарил много где, помучался, но добил этот парсер.
    Теперь он может сохранять спаршенный результат в файл file.txt в ту же директорию где находится скрипт.
    Плюс подкорректировал код под питон 3.4, там некоторые библиотеки по другому называются.
    Это намного удобней, и дальше работать легче.
    Выкладываю всем на обозрение, возможно у кого то был или будет тот же вопрос что я в свое время задал автору.
    Надеюсь будет полезно.
    #Including
    from bs4 import BeautifulSoup
    from urllib.request import urlopen
    def parse_yaca(url):
    counter = 0
    page = urlopen(url).read()
    html = BeautifulSoup(page)
    links = html.find_all('a','b-result__name')
    with open("file1.txt", "a") as file_1:
    for link in links:
    file_1.write(link.get('href') + "\n")
    parse_yaca('https://yaca.yandex.ru/yca/cat/Rest/Travels/Adventures/Tourists/')
    counter = 1
    while(counter<101):
    textcounter = str(counter)
    parse_yaca('https://yaca.yandex.ru/yca/cat/Rest/Travels/Adventures/Tourists/'+textcounter+'.html')
    counter = counter+1