首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Scrapy爬虫中启动一个全新的请求?

如何在Scrapy爬虫中启动一个全新的请求?
EN

Stack Overflow用户
提问于 2018-11-26 08:11:38
回答 1查看 46关注 0票数 0

我正在从一个网站上抓取,它将为每个请求会话提供一个sid,在获得sid之后,我将使用这个sid执行进一步的搜索查询,并刮取结果。

每次完成单个查询的所有结果后,我都想更改sid,我尝试过清除cookies,但它不起作用。

但是,如果我重新启动我的爬虫,每次都会得到不同的sid,我只是不知道如何在不重新启动爬虫的情况下获得一个新的sid

我想知道是否还有什么东西让服务器知道来自同一个连接的两个请求。

谢谢!

以下是我的当前代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 08:18:38

设置COOKIES_ENABLED = False可以实现这一点,但是除了全局设置之外,还有其他方法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53476958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档