вход в систему для аутентификации с помощью куки-файлов

Я новичок в скрейпинге и решил попробовать его из-за хороших онлайн-отзывов. Я пытаюсь войти на сайт с помощью scrapy. Я успешно вошел в систему с комбинацией селена и механизации, собрав необходимые файлы cookie с селеном и добавив их в механизацию. Теперь я пытаюсь сделать что-то подобное с помощью scrapy и selenium, но, похоже, ничего не работает. Я даже не могу сказать, работает что-то или нет. Кто-нибудь может мне помочь, пожалуйста. Ниже то, с чего я начал. Возможно, мне даже не нужно передавать файлы cookie с помощью scrapy, но я не могу сказать, действительно ли эта вещь когда-либо входит в систему или нет. Спасибо

from scrapy.spider import BaseSpider
from scrapy.http import Response,FormRequest,Request
from scrapy.selector import HtmlXPathSelector
from selenium import webdriver

class MySpider(BaseSpider):
    name = 'MySpider'
    start_urls = ['http://my_domain.com/']

    def get_cookies(self):
        driver = webdriver.Firefox()
        driver.implicitly_wait(30)
        base_url = "http://www.my_domain.com/"
        driver.get(base_url)
        driver.find_element_by_name("USER").clear()
        driver.find_element_by_name("USER").send_keys("my_username")
        driver.find_element_by_name("PASSWORD").clear()
        driver.find_element_by_name("PASSWORD").send_keys("my_password")
        driver.find_element_by_name("submit").click()
        cookies = driver.get_cookies()
        driver.close()
        return cookies

    def parse(self, response,my_cookies=get_cookies):
        return Request(url="http://my_domain.com/",
            cookies=my_cookies,
            callback=self.login)

    def login(self,response):
        return [FormRequest.from_response(response,
            formname='login_form',
            formdata={'USER': 'my_username', 'PASSWORD': 'my_password'},
            callback=self.after_login)]

    def after_login(self, response):
        hxs = HtmlXPathSelector(response)
        print hxs.select('/html/head/title').extract()
8
задан JonDog 26 June 2012 в 04:51
поделиться