У меня есть паук-скрап, которому нужны куки, сгенерированные через логин для успешного доступа к содержимому, которое я sh очистил. Я нашел, что это легче сделать с помощью селена и успешно доставлять печенье в скребок. Какое-то время это работает, однако, в конце концов, файлы cookie становятся недействительными, и сайт начинает перенаправлять меня на домашнюю страницу. Каков наилучший способ снова войти в систему, освежить файлы cookie и продолжить очистку содержимого?
Вот пример того, что у меня есть.
class LoginSpider(scrapy.Spider):
name="login_scraper"
def __init__(self):
self.current_cookies = self.freshen_cookies()
super(LoginSpider,self).__init__()
def freshen_cookies(self):
user_name = 'someuser'
password = 'somepass'
#login with selenium to get the form data we need.
driver = webdriver.Chrome()
login_page='https://someurl.com/login'
driver.get(login_page)
username = driver.find_element_by_name("userid")
username.send_keys(user_name)
password = driver.find_element_by_name("password")
password.send_keys(password)
signin = driver.find_element_by_class_name('button')
signin.click()
sleep(10)
cookies = driver.get_cookies()
driver.close()
return cookies
def start_requests(self):
for i in xrange(0,1000):
to_query = 'https://someurl.com/interestingcontent_page'+i
yield scrapy.http.Request(to_query,
cookies=self.current_cookies,
dont_filter=True,
callback=self.parse)
def parse(self,response):
#do some stuff
yield {}
Что у меня есть? пытался? Я пытался написать свое собственное промежуточное ПО и редактировать промежуточное ПО перенаправления. Ни один из этих методов не сработал очень хорошо по разным причинам. С промежуточным программным обеспечением, которое я написал, было слишком много запросов на вход в систему и обновление sh файлов cookie, которые начали генерироваться. С реализацией пересмотра промежуточного программного обеспечения для перенаправления файлы cookie, похоже, не обновлялись вообще.
Предыдущие вопросы посвящены тому, как устанавливать файлы cookie в первую очередь, как случайным образом извлекать файлы cookie из некоторого предыдущего набора, но ни один из них, который я могу найти, не рассматривал способы динамической настройки файлов cookie, учитывая, что во время ползать (например, 302 встречается).