scrapy禁止重定向
时间: 2023-09-08 22:10:07 浏览: 271
在Scrapy中禁止重定向有几种方法。首先,如果你在start_requests方法中顺序爬取执行,你可以在yield Request时添加meta参数,并设置dont_redirect为True,handle_httpstatus_list为\[302\],这样就可以中止重定向。例如:
```python
def start_requests(self):
yield Request(url, meta={
'dont_redirect': True,
'handle_httpstatus_list': \[302\]
}, callback=self.parse)
```
如果你是在parse方法中使用yield Request进行爬取,你可以添加dont_filter=True参数来过滤重复请求,并且同样需要设置dont_redirect为True和handle_httpstatus_list为\[302\]。例如:
```python
def parse(self, response):
url = "xxxxxxxxxx"
yield Request(url, meta={
'dont_redirect': True,
'handle_httpstatus_list': \[302\]
}, callback=self.parse, dont_filter=True)
```
另外,你也可以直接在yield Request时设置dont_redirect为True来中止重定向。例如:
```python
yield Request(url, meta={
'dont_redirect': True,
'handle_httpstatus_list': \[302\]
}, callback=self.parse)
```
以上是在Scrapy中禁止重定向的几种方法。你可以根据具体的需求选择适合的方法来实现禁止重定向的功能。
#### 引用[.reference_title]
- *1* *2* *3* [Scrapy爬虫遇见重定向301/302问题解决方法](https://blog.csdn.net/WuYan_Emperor/article/details/125540770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文
相关推荐

















