Python基于scrapy采集数据时使用代理服务器的方法

137 阅读2分钟

今天这篇文章主要给大家介绍下Python基于scrapy采集数据时使用代理服务器的方法,涉及Python使用代理服务器的技巧,具有一定参考借鉴价值,需要的朋友可以参考下。
在我们访问任何网站之前,都需要对网站进行分析,最主要的是分析网站的是否有反爬机制,因为反爬机制的严格与否对我们获取的速度和数量都有一定的影响。在应对反爬机制的时候除了使用代理IP以外还有一个基本的随机ua的添加,做爬虫都应该对这个不陌生。在Python爬虫的过程中经常要模拟UserAgent, 因此自动生成UserAgent十分有用通过UA来判断不同的设备或者浏览器是开发者最常用的方式方法,这个也是对于Python反爬的一种策略。但是我们今天重点讲的是代理IP的使用,对那些反爬机制特别严的网站,大家肯定在找适合代理的时候很费精力,今天就给大家解决这个问题,推荐亿牛云代理,自营线路,电信专线IP池,代理速度,延迟都是一级棒。特别是需求高的业务,更是能满足需求。这里主要推荐他们家提供的爬虫代理隧道模式的,真的是yyds,关于使用方式,不同的语言使用有稍微的区别,这里给大家示例scrapy爬虫程序代理IP的实现过程:

Plain Text

复制代码

1

import base64            

2

        import sys

3

        import random

4

5

        PY3 = sys.version_info[0] >= 3

6

7

        def base64ify(bytes_or_str):

8

            if PY3 and isinstance(bytes_or_str, str):

9

                input_bytes = bytes_or_str.encode('utf8')

10

            else:

11

                input_bytes = bytes_or_str

12

13

            output_bytes = base64.urlsafe_b64encode(input_bytes)

14

            if PY3:

15

                return output_bytes.decode('ascii')

16

            else:

17

                return output_bytes

18

19

        class ProxyMiddleware(object):                

20

            def process_request(self, request, spider):

21

                # 代理服务器(产品官网 www.16yun.cn)

22

                proxyHost = "t.16yun.cn"

23

                proxyPort = "31111"

24

25

                # 代理验证信息

26

                proxyUser = "username"

27

                proxyPass = "password"

28

29

                request.meta['proxy'] = "http://{0}:{1}".format(proxyHost,proxyPort)

30

31

                # 添加验证头

32

                encoded_user_pass = base64ify(proxyUser + ":" + proxyPass)

33

                request.headers['Proxy-Authorization'] = 'Basic ' + encoded_user_pass                    

34

35

                # 设置IP切换头(根据需求)

36

                tunnel = random.randint(1,10000)

37

                request.headers['Proxy-Tunnel'] = str(tunnel)

关于其他语言写的程序如何使用代理,大家可以去官网具体了解下:www.16yun.cn/help/ss_dem…以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流。

若有收获,就点个赞吧