Я снимаю с веб-сайта, который будет давать каждому сеансу запроса sid
, после получения sid
я выполняю дополнительный поисковый запрос с этим sid
и очищаю результаты.
Я хочучтобы изменить sid
каждый раз, когда я заканчиваю очистку всех результатов одного запроса, я попытался очистить куки, но он не работает.
Однако, если я перезапущу свой сканер, он будеткаждый раз получаю разные sid
, я просто не знаю, как получить новый sid
без перезапуска сканера.
Мне интересно, есть ли что-то еще, что позволяет серверу знать два запросаиз того же соединения.
Спасибо!
Вот мой текущий код:
class MySpider(scrapy.Spider):
name = 'my_spider'
allowed_domains = ['xxx.com']
start_urls = ['http://xxx/']
sid_pattern = r'SID=(\w+)&'
SID = None
query_list = ['aaa', 'bbb', 'ccc']
i = 0
def parse(self, response):
if self.i >= len(self.query_list):
return
pattern = re.compile(self.sid_pattern)
result = re.search(pattern, response.url)
if result is not None:
self.SID = result.group(1)
else:
exit(-1)
search_url = 'http://xxxx/AdvancedSearch.do'
query = self.query_list[i]
self.i += 1
query_form = {
'aaa':'bbb'
}
yield FormRequest(adv_search_url, method='POST', formdata=query_form, dont_filter=True,
callback=self.parse_result_entry)
yield Request(self.start_urls[0], cookies={}, callback=self.parse,dont_filter=True)
def parse_result(self, response):
do something