Python+machanize. Почему не загружает сайт?

Discussion in 'PHP' started by Venomtag, 27 Apr 2014.

  1. Venomtag

    Venomtag New Member

    Joined:
    29 Jun 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Возникла идея создать свой скрипт для создания списочка с прокси серверами, но вот есть проблемы с открытием некоторых ресурсов, например вот с этим http://hideme.ru/proxy-list/
    Для открытия использую вот такой скриптик:
    import cookielib
    import mechanize


    cookie = cookielib.CookieJar()
    # Browser
    br = mechanize.Browser()

    # Browser options
    br.set_handle_equiv(True)
    br.set_handle_gzip(True)
    br.set_handle_redirect(True)
    br.set_handle_referer(True)
    br.set_handle_robots(False)

    # Follows refresh 0 but not hangs on refresh > 0
    br.set_cookiejar(cookie)
    br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

    # User-Agent (this is cheating, ok?)
    br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0')]

    r = br.open('http://hideme.ru/proxy-list/')
    html = r.read()
    print html

    На что сайт дает вот такой ответ:
    It seems you are bot. If so, please use separate API interface. It is cheap and easy to use.<br>
    <a href="/">Main page</a><br>
    <a href="/feedback/">Contact us</a><br>

    API там платный, а скрипт воспринимается как бот... Подскажите как можно стать "порядочным пользователем" в глазах данного сайтика :)
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Это раздел для компилируемых языков. Берешь снифер и смотришь, как выглядит запрос, который шлет браузер при обращении к сайту, сравниваешь со своим, понимаешь, что у тебя отсутствует заголовок Accept-Language, да и содержимое Accept странно выглядит.
     
    _________________________
  3. Venomtag

    Venomtag New Member

    Joined:
    29 Jun 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Благодарю за наводку :)
    Вопрос решился вот таким заголовком:
    br.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0'), ('Accept-Language','ru-RU,ru'), ('Accept','text/html,application/xhtml+xml,application/xml')]