【python爬虫】在scrapy中利用代理IP(爬取BOSS直聘网)

本文介绍了如何在Scrapy中利用代理IP和User-Agent来应对网站的反爬策略,以爬取BOSS直聘的招聘信息为例。文章详细阐述了设置代理IP的步骤,包括从豌豆代理获取API,处理代理IP的过期问题,以及在Scrapy中间件中配置代理IP和随机User-Agent。此外,还分享了项目的目录结构、爬虫规则和数据库存储的方法。
摘要由CSDN通过智能技术生成

同学们好,我又滚回来更新了,这一次我们要爬取的目标是BOSS直聘,BOSS直聘可以说是反爬虫一个很好的例子了,主要在于如果你访问他的次数过多,他就会出现验证码,要求你通过验证才能继续看,这样还算可以,但是如果你之后还继续访问过多,那么就会出现以下画面
在这里插入图片描述
直接连填写验证码的机会都没有,就是不给你看,这么做可以说是很霸气了,不过对方有招,我们也是不差的,既然对方来封我们的IP了,那么我们就不用这个IP了,换代理IP来爬取,那么我们就开始尝试scrapy+代理IP的强大之处把。
需要注意的点:
1.这一次使用的框架仍然是scrapy,这一次的重点是在中间件中增加代理IP和User-Agent
2.这一次使用的代理IP是豌豆代理,我个人觉得还OK
3.本文用于技术交流,如果侵犯版权立即删除,任何人不能用于商业用途

这里先说一下我们这一次使用的豌豆代理,在获取API这一列,设置大概是这样就可以了,如何点下生成API链接的按钮
在这里插入图片描述
这样就可以得到自己豌豆代理服务器返回给你的代理IP了
在这里插入图片描述
在链接在网页中打开是这个样子的,我们上面的设置,让他返回了JSON格式,这样方便我们在代码里面使用,这里值得注意的是,上面设置的的时候要的都是HTTP协议的,所有在代码中设置的时候要稍微注意一下,我们需要就是data中的ip和port还有expire_time,ip和port就不用说了,expire_time是告诉你这个代理在这个时间点之后便会过期
在这里插入图片描述
那么我们要怎么在代码中使用这个东西呢,不用着急,容我细细道来(顺便一说,豌豆代理里面是自己有python和PHP代码的使用教程的,但我看不是很懂,所以就自己搞了一个)
在这里插入图片描述
根据上面这张图的要求,我们需要在请求IP代理那个链接的网页的时候,加上一个Proxy-Authorization的请求头,至于内容是用base64对用户名和密码就行加密,然后我这样做了,但是并没有效果,显示链接失败了,观察了一下,单纯这样子还是不行的,需要在加上cookie,之后就可以查看,还是看不懂你的同学可以看看我写的例子,这里是请求了20个ip

import base64
import requests
import time
import random
import json

def base_code(username, password):
    str = '%s:%s' % (username, password)
    encodestr = base64.b64encode(str.encode('utf-8'))
    return '%s' % encodestr.decode()

def main():
    DEFAULT_REQUEST_HEADERS = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Accept-Language': 'en',
        'cookie':'',#cookie要自己更新一下!!!!!!
        'user-agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36",
    }
    username = '' #这里填入用户名!!!!!
    password = ''# 这里填入密码!!!!!
    base = base_code(username, password)
    DEFAULT_REQUEST_HEADERS['Proxy-Authorization'] = 'Basic '+base
    url = r'https://h.wandouip.com/get/ip-list?pack=%s&num=1&xy=1&type=2&lb=\r\n&mr=1&' % random.randint(100,1000)
    response = requests.get(url=url,headers=DEFAULT_R
  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值