Scrapy配置代理过程详解

最近在学习过程中,遇到了网站的反爬机制,由于不是很严格,所以使用代理即可解决,并把自己的具体配置过程总结如下:

第一步:修改middlewares文件

from .settings import USER_AGENTS
from .settings import PROXIES
import random
import base64
# 随机浏览器
class RandomUserAgent:
    def process_request(self,request,spider):
        useragent = random.choice(USER_AGENTS) #随机选择一个代理
        request.headers.setdefault("User-Agent",useragent) #代理
# 随机代理
class RandomProxy:
    def process_request(self,request,spider):
        proxy = random.choice(PROXIES)
        # 没有代理用户密码
        if proxy["user_passwd"] is None:
            request.meta["proxy"] = "http://" + proxy["ip_port"]
        else:
            # 账户密码进行编码操作
            base64_userpasswd = base64.b64encode(proxy["user_passwd"].encode("utf-8"))
            request.headers["Proxy-Authorization"] = "Basic " + base64_userpasswd.decode("utf-8")
            request.meta["proxy"] = "http://" + proxy["ip_port"]

(注:这里主要用于随机生成代理浏览器和地址,对于随机代理这块,如果代理有用户名密码,需要使用base64进行加密处理)
第二步:修改setting配置文件
1.设置默认代理

USER_AGENT = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;'

(这个只需要将注释打开,后面修改为代理浏览器即可)

2.修改ROBOTSTXT_OBEY属性为false

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

3.禁止cookie

# Disable cookies (enabled by default)
COOKIES_ENABLED = False

4.启用下载中间组件

# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
   # 配置代理
   'csdn.middlewares.RandomUserAgent': 100,
   'csdn.middlewares.RandomProxy': 200,
}

(注:这里的代理是第一步中配置的,后面的数值100,200为官方默认数值)
5.添加浏览器和ip的代理列表

PROXIES = 
[
	{"ip_port":"192.168.17.2","user_passwd":None}
]
USER_AGENTS = [
    'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)',
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)',
    'Opera/9.27 (Windows NT 5.2; U; zh-cn)',
    'Opera/8.0 (Macintosh; PPC Mac OS X; U; en)',
    'Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0',
    'Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M032 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
    'Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13'
]

(注:这个主要是用来第一步中随机生成代理ip和浏览器,我这里只用了一个ip,如果你有多个可以随意添加)

经过以上的配置,scrapy就会经过代理去访问页面从而获取数据了

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值