Scrapy - 手动登录

时间:2016-06-28 08:21:41

标签: python login scrapy manual

我正在使用scrapy构建一个非常简单的刮刀,以便从一组网址中抓取某个元素。但是,为了做到这一点,我必须登录到网站,我无法让我的刮刀的登录部分工作。

是否可以手动登录网站然后让我的刮刀执行抓取任务?

1 个答案:

答案 0 :(得分:0)

我理解您的要求,但您无法及时#34;手动登录"使用scrapy,你必须在上面注入饼干。

我看到这样做的最好方法是使用Selenium登录并让它创建cookie以在此处提供scrapy以及如何:

def get_cookies(self):
    driver = webdriver.Firefox()
    base_url = "http://www.example.com/login"
    driver.get(base_url)
    #Code to login
    driver.find_element_by_name("username").send_keys("my_username")
    driver.find_element_by_name("password").send_keys("my_password")
    driver.find_element_by_name("submit").click()
    #get the cookies created
    cookies = driver.get_cookies()
    driver.close()
    return cookies

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

def login(self, response):
    #You'll have the cookies here

代码可能需要在这里和那里进行一些调整,但这是一般的想法