Python爬虫:scrapy-splash的请求头和代理参数设置

简介: Python爬虫:scrapy-splash的请求头和代理参数设置

3中方式任选一种即可


1、lua中脚本设置代理和请求头:

function main(splash, args)
  -- 设置代理        
  splash:on_request(function(request)
        request:set_proxy{
         host = "27.0.0.1",
         port = 8000,
     }
  end)
    -- 设置请求头
    splash:set_user_agent("Mozilla/5.0")
    -- 自定义请求头
   splash:set_custom_headers({
    ["Accept"] = "application/json, text/plain, */*"
    })
    splash:go("https://www.baidu.com/")
    return splash:html()

2、scrapy中设置代理

def start_requests(self):
    for url in self.start_urls:
        yield SplashRequest(url,
            endpoint='execute',
            args={'wait': 5,
                  'lua_source': source,
                  'proxy': 'http://proxy_ip:proxy_port'
                  }

scrapy中设置请求头一样的在headers中设置


3、中间件中设置代理


class ProxyMiddleware(object):
      def process_request(self, request, spider):
       request.meta['splash']['args']['proxy'] = proxyServer
       request.headers["Proxy-Authorization"] = proxyAuth

参考:

相关文章
|
3天前
|
Python
Python中使用星号(*)处理位置参数
【6月更文挑战第14天】
10 4
|
3天前
|
存储 Python 容器
|
2天前
|
Python
Python中解包为关键字参数
【6月更文挑战第15天】
6 2
|
4天前
|
Python
在Python中,解包参数列表和Lambda表达式是两个不同的概念
【6月更文挑战第19天】在Python中,解包参数允许将序列元素作为单独参数传递给函数,如`greet(*names_and_ages)`。而Lambda表达式用于创建匿名函数,如`lambda x, y: x + y`。两者可结合使用,如`max(*numbers)`找列表最大值,但过度使用lambda可能降低代码可读性。
11 3
|
6天前
|
Python
|
6天前
|
Python
python中使用星号(*)处理位置参数
【6月更文挑战第11天】
9 3
|
8天前
|
Python
Python中参数解包(Argument Unpacking)
【6月更文挑战第10天】
8 3
|
8天前
|
Python
|
8天前
|
JSON API 数据安全/隐私保护
Python基础-使用代理
Python基础-使用代理