小编Jon*_*Dog的帖子

scrapy身份验证登录与cookie

我是scrapy的新手,并且因为良好的在线评论而决定尝试一下.我正在尝试使用scrapy登录网站.我已经成功登录了硒和机械化的组合,通过收集所需的硒饼干并将其添加到机械化.现在我正在尝试用scrapy和selenium做类似的事情,但似乎无法开始工作.我甚至无法判断是否有任何工作.谁能帮帮我吗.以下是我开始的内容.我可能甚至不需要用scrapy转移cookie但我不知道这件事是否实际登录过.谢谢

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()
Run Code Online (Sandbox Code Playgroud)

python authentication selenium login scrapy

8
推荐指数
1
解决办法
7286
查看次数

SQL Server - 如何只在select之间的其他属性时加入

我正在尝试查询以显示学生的出勤记录.这些是我的表.

在此输入图像描述

这是我到目前为止开始的......

我正在将studentId(StudentCalendar)列表与学校开放日期(DateCollection)匹配,然后记录错过的天数(出勤率).

我最终得到这样的东西..

 SELECT s.personid,
        dc.calendarid, 
        dc.[date], 
        coalesce(absentMinutes,0) AS absentMinutes
   FROM [dbo].[StudentCalendar] s
        INNER JOIN [dbo].[DateCollection] dc ON s.calendarId = dc.calendarId
         LEFT JOIN [dbo].[Attendance] a ON a.dateOccurred = dc.[date]
               AND a.personId = s.personId
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我现在有一份学生名单,每天都有学校开放.我的问题是并非每个学生都注册了整个学年.

有没有办法让我只能将学生列表(StudentCalendar)与学校开放日期(DateCollection)匹配,当它在每个学生的学生日历startDate和endDate(日历)中给出的范围内?

像这样的东西..

在此输入图像描述

sql sql-server

5
推荐指数
1
解决办法
121
查看次数

Scrapy InIt self.initialized() - 没有初始化

我正在尝试使用Scrapy登录到init中的网站然后在确认登录后我想初始化并通过start_urls启动标准爬行.我不知道出了什么问题,但我清楚登录并且每件事都确认,但parse_item永远不会启动.任何帮助将不胜感激.

我可以把它弄到"================成功登录================="

我无法进入"========================== PARSE ITEM ================ =========="

from scrapy.contrib.spiders.init import InitSpider
from scrapy.http import Request, FormRequest
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.spiders import Rule
from selenium import webdriver

class ProductDetailsSpider(InitSpider):
    name = 'product_details_spider'
    allowed_domains = ['my_domain.com']
    login_page = 'http://www.my_domain.com/'
    start_urls = ['http://www.my_domain.com/nextpage1/',
                  'http://www.my_domain.com/nextpage2/',
                  'http://www.my_domain.com/nextpage3/']

    rules = (
        Rule(SgmlLinkExtractor(allow=()),
            callback='parse_item',
            follow=True),
        )

    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("USR").clear()
        driver.find_element_by_name("USR").send_keys("my_user")
        driver.find_element_by_name("PASSWRD").clear()
        driver.find_element_by_name("PASSWRD").send_keys("my_pass")
        driver.find_element_by_name("submit").click()
        cookies = driver.get_cookies()
        driver.close()
        cookie_dic = {}
        for c in cookies: …
Run Code Online (Sandbox Code Playgroud)

python selenium web-crawler scrapy scraper

2
推荐指数
1
解决办法
1566
查看次数