tôi mới dùng mưu mẹo và quyết định dùng thử vì các đánh giá trực tuyến tốt. Tôi đang cố gắng đăng nhập vào một trang web bị lúng túng. Tôi đã đăng nhập thành công với một sự kết hợp của selen và cơ giới hóa bằng cách thu thập các cookie cần thiết với selen và thêm chúng vào cơ giới hóa. Bây giờ tôi đang cố gắng để làm một cái gì đó tương tự với scrapy và selen nhưng cant dường như để có được bất cứ điều gì để làm việc. Tôi thậm chí không thể biết được có điều gì đang hoạt động hay không. Ai đó làm ơn giúp tôi với. Dưới đây là những gì tôi đã bắt đầu. Tôi có thể thậm chí không cần phải chuyển các tập tin cookie với scrapy nhưng tôi không thể nói nếu điều thực sự bao giờ đăng nhập hay không. Cảm ơnđăng nhập xác thực không hợp lệ với 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()
Sau khi khắc phục các sự cố bạn đã lưu ý, tôi có thể đăng nhập thành công! Lưu ý: các tập tin cookie mà selenium trả lại là danh sách các từ điển đã được thay đổi thành một từ điển duy nhất. Cảm ơn rất nhiều vì đã giúp đỡ. – JonDog
xin lỗi, Im mới vào stackoverflow. Tôi mệt mỏi bỏ phiếu nhưng nó nói rằng tôi cần 15 danh tiếng trước khi tôi có thể bỏ phiếu. Tôi không thấy bất kỳ cách nào khác để đánh dấu là trả lời hoặc .. UPDATE - Ok, tôi nhấp vào dấu kiểm. Tôi nghĩ vậy. – JonDog
@ JohnDog..có thể bạn vui lòng đăng bài về cách bạn xử lý chuyển đổi cookie từ một biểu mẫu sang – Amistad