Python之Scrapy爬虫实战--绕过网站的反爬

1、设置随机UA

修改middlewares.py

from fake_useragent import UserAgent

class RandomUserAgentMiddleware(object):
    def process_request(self, request, spider):
        ua = UserAgent()
        request.headers['User-Agent'] = ua.random

修改settings.py

# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
 # 'csdn_xila.middlewares.CsdnXilaDownloaderMiddleware': 543,
   'scrapy_test.middlewares.RandomUserAgentMiddleware': 543,
}

2、设置IP代理池

测试网站:http://icanhazip.com,网站可以返回当前请求的ip地址,以此检验代理ip是否设置成功。

class ProxyMiddleware(object):
    def process_request(self, request, spider):
        request.meta["proxy"] = "http://" + 代理ip(包括端口)

修改settings.py

# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
DOWNLOADER_MIDDLEWARES = {
   # 'csdn_xila.middlewares.CsdnXilaDownloaderMiddleware': 543,
    'csdn_xila.middlewares.RandomUserAgentMiddleware': 543,
    'csdn_xila.middlewares.ProxyMiddleware': 542,
}

这里给大家推荐个开源的免费ip代理池,当然这只是用来学习测试,需求量大的还是去各大代理ip平台买吧!

https://github.com/jhao104/proxy_pool

3、添加referer

default_headers = {
            'referer': 'https://www.baidu.com/',
        }

欢迎大家留言讨论,三人行,必有我师!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值