在 meta 中设置 https 代理的正确方法是什么?
What is the correct way to set up an https proxy within meta?
我创建了一个脚本,使用 scrapy 在其中实施代理以从网站获取内容。该脚本似乎工作正常。我试图从中获取数据的网站是 https://www.zillow.com/miami-fl-33166/
.
因为这是一个 https
站点并且我正在使用 https
代理,所以我设置了如下代理:
request.meta['proxy'] = 'https://123.200.20.242:58847'
但是,当我今天不小心将 https
更改为 http
后执行脚本时,如下所示,我注意到脚本仍然有效。
request.meta['proxy'] = 'http://123.200.20.242:58847'
这就是我在中间件中实现代理的方式:
def process_request(self, request, spider):
request.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
request.meta['proxy'] = 'https://123.200.20.242:58847'
# request.meta['proxy'] = 'http://123.200.20.242:58847'
这是参考:
DOWNLOADER_MIDDLEWARES = {
'customized_bot.proxy_middleware.ProxiesMiddleware': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': None,
}
What is right way to set up https
proxies within meta?
我创建了一个脚本,使用 scrapy 在其中实施代理以从网站获取内容。该脚本似乎工作正常。我试图从中获取数据的网站是 https://www.zillow.com/miami-fl-33166/
.
因为这是一个 https
站点并且我正在使用 https
代理,所以我设置了如下代理:
request.meta['proxy'] = 'https://123.200.20.242:58847'
但是,当我今天不小心将 https
更改为 http
后执行脚本时,如下所示,我注意到脚本仍然有效。
request.meta['proxy'] = 'http://123.200.20.242:58847'
这就是我在中间件中实现代理的方式:
def process_request(self, request, spider):
request.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
request.meta['proxy'] = 'https://123.200.20.242:58847'
# request.meta['proxy'] = 'http://123.200.20.242:58847'
这是参考:
DOWNLOADER_MIDDLEWARES = {
'customized_bot.proxy_middleware.ProxiesMiddleware': 100,
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'scrapy.downloadermiddlewares.retry.RetryMiddleware': None,
}
What is right way to set up
https
proxies within meta?