ФорумПрограммированиеPython → Python+Grab

Python+Grab

  • polin11

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 20 октября 2014 г. 5:43

    При попытке авторизоваться на mail.ru при помощи библиотеки grab. Логин указаны верно. Всю голову сломал.
    При попытке выполнить скрипт
    IDLE's subprocess didnt make connection. Either IDLE cant start a subprocess
    or personal firewall software is bloking the connection

    Затем идет выполнение

    # -*- coding: cp1251 -*-
    from grab import Grab
    g=Grab()
    g.go("https://e.mail.ru")
    g.set_input("Login","login1234")
    g.set_input("Password","pass1234")
    g.submit()
    print(g.search(u'контакты'))
    #выводит false хотя, на странице есть раздел контакты

    # -*- coding: cp1251 -*-
    from grab import Grab
    g=Grab()
    g.go("https://mail.ru")
    g.set_input_by_id("mailbox__login","login1234")
    g.set_input_by_id("mailbox__password","pass1234")
    g.submit()
    print(g.search(u'контакты'))

    #выводит false хотя, на странице есть раздел контакты

    Как написать скрипт при помощи grab, для авторизации на mail.ru
    Буду рад любой помощи
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 октября 2014 г. 5:53, спустя 9 минут 29 секунд

    Сразу замените

    # -*- coding: cp1251 -*-
    

    на

    # coding: utf-8
    
    adw/0
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 20 октября 2014 г. 6:01, спустя 8 минут 19 секунд

    И я выполнил вышу первую часть, вот что в g.response.body:

    '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\n<html>\n<head>\n<meta http-equiv="content-type" content="text/html; charset=utf-8">\n<script language="JavaScript"><!–\n    window.location.replace("https://e.mail.ru/[email protected]&fail=1"); \n// –></script>\n<meta http-equiv="refresh" content="0;url=https://e.mail.ru/[email protected]&fail=1">\n</head>\n<body></body>\n</html>\n


    Спустя 86 сек.

    Научитесь отлаживать, рекомендую pudb или pdb

    Спустя 104 сек.

    На худой конец сделайте так:


    # coding: utf-8
    from grab import Grab

    g = Grab()
    g.go("https://e.mail.ru")
    g.set_input("Login","login1234")
    g.set_input("Password","pass1234")
    g.submit()

    print g.response.body

    Спустя 53 сек.

    ps. А вообще я пользовался Grab - по мне то он так себе. Мне больше нравится Scrapy
    adw/0
  • polin11

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 23 октября 2014 г. 6:44, спустя 3 дня 43 минуты

    Спасибо, очень помогли
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 24 октября 2014 г. 2:29, спустя 19 часов 44 минуты 27 секунд

    @adw0rd, ты не ты когда тебе делать нехуй)

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!