我是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) 我正在尝试查询以显示学生的出勤记录.这些是我的表.

这是我到目前为止开始的......
我正在将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(日历)中给出的范围内?
像这样的东西..

我正在尝试使用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)