Как парсить новости с news.yandex и mail.ru на php

Как парсить новости с news.yandex.ru, по своему запросу, например -
http://news.yandex.ru/yandsearch?grhow=clutop&text=какой то запрос&rpt=nnews2&p=0
?

Беда в том что яндекс при частых запросах просит капчу, подскажите как быть? Если какие нибудь способы.
Подойдут еще варианты с mail.ru

Пробовал через curl и парсил через регулярки.
  • Вопрос задан
  • 7057 просмотров
Пригласить эксперта
Ответы на вопрос 4
@xfenix
Как раз недавно я написал паук для яндекс новостей на scrapy и вполне успешно им пользуюсь.
Увы, объёмы у меня маленькие, поэтому я остановился на ручном вводе:
body = html.fromstring(response.body)
# extract params
captcha = body.xpath('//*[@class="b-captcha__image"]/@src')[0]
key = body.xpath('//input[contains(@name, "key")]/@value')[0]
returl = body.xpath('//input[contains(@name, "retpath")]/@value')[0]
self.retpath = returl
# download captcha
try:
    os.remove(CAPTCHA_FILE)
except:
    pass
urllib.urlretrieve(captcha, CAPTCHA_FILE)
# show captcha
img = Image.open(CAPTCHA_FILE)
img.show()
# get captcha value
captcha_value = raw_input('Put captcha in manually> ')
Ответ написан
Комментировать
deadbyelpy
@deadbyelpy
веб-шмеб
насколько нужны частые запросы? кэшируйте на своей стороне данные, обновляйте раз в 5 мин, и будет вам счастье.
Ответ написан
Комментировать
kmx
@kmx
А с яндекса парсить через RSS и прокси не пробовали?
года два назад прокатывало.
Ответ написан
А кто ни будь замечал если выкинул капчу и с этого IP нет больше запросов Яндекс снимает капчу через какое-то время?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы