在Scrapy 中使用代理的情况一般分两种, 一种是本身必须启用代理才能访问的站点, 不启用代理的话结果就像图片中这样:

不启用代理根本访问不了别说提取数据了,这种情况下需要在第一次发起请求时启用代理,可以通过重写 make_requests_from_url 方法实现:
def make_requests_from_url(self, url):
    request = scrapy.Request(url, meta={"proxy": "http://127.0.0.1:9999"})
    return request结果:

另一种情况, 一般用来绕过IP限制的, 一些站点会限制同一IP的访问频率之类的, 这种情况只要在发起请求前使用代理即可, 比如在parse方法触发新请求时使用:
def parse(self, response):
    url = ...
    yield scrapy.Request(url, meta={"proxy": "http://127.0.0.1:9999"})通过meta参数指定代理即可, 根据url是HTTPS的则代理也要使用HTTPS.
                                关键字词:
                        
                        
                        
                    
