python爬虫系列第六次笔记之验证码以及代理的使用

1代理的使用

随着时代的进步,免费代理已经是没diao用了,所以我建议是直接付费代理,那么我们只需要在付费平台上付费之后,平台会给你一个网站,然后在网站上给出代理,我一般用的讯代理。在购买代理中选择优质代理,然后选择按时或者按量来获取,最后点击网页右上角的API接口,选择优质代理api,选择你的订单,然后选择10个或者几个,一般是选10个。
然后生成API链接,那么我们只需要获取网页上的信息,那么我只需要使用爬虫来爬取网页上的信息,当然你可以直接在网页上复制粘贴,但是使用函数我们可以随机获取代理,以免代理无法使用之后,要再回到网页上继续做,所以我们可以到函数中定义,如果目标网页返回错误,直接再次调用代理获取函数重新获取网页,直到正确获取网页后,返回该代理,然后用这个代理去访问网页,由于付费网站的代理量大,所以不必要给予代理以打分制度来避免一次或者几次的失败获取网页代理被无辜抛弃。
还有一些网站会根据你爬取的量来判断你是否是爬虫来进行反爬,所以在爬取错误之后,我们需要随机挑选另一个代理来继续进行爬虫,那么我们的代理输入不能唯一,这也是我们选择使用函数调用来获取代理的另一个原因。

第一步,我们需要在网页上获取大量的代理,
第二步,使用代理来访问网页,将可使用的代理,放入一个列表中,
第三步,建立一个函数,返回所有代理。

from requests_html import HTMLSession
import re
def proxy_out():
    session = HTMLSession()
    url = '网页生成的API'
    response_get = session.get(url)
    html_str = response_get.html.html
    print(html_str)
    port_all = re.findall('"port":"(.*?)",',html_str)
    ip_all = re.findall('"ip":"(.*?)"',html_str)
    print(port_all)
    print(ip_all)
    for i in range(0,10):
        proxy = ip_all[i] + ':' + port_all[i]
        print(proxy)
proxy_out()

调用之后就可以返回10个代理,从中任意挑选3个即可。

2打码平台的使用

平台:http://www.jianjiaoshuju.com/goods/A1CA6A96FD8F2A1AE102EAD093303548.html

这里面需要注意的是我们在网页上看到的验证码,我们需要将图片保存下来,也就是爬取网页上的验证码图片之后保存。
这里的代码是根据网页代码修改之后的代码,如果有文字类的,我们就需要修改下面代码中的起始url为http://apigateway.jianjiaoshuju.com/api/v_1/fzyzm.html
然后修改类型
在这里插入图片描述

import requests, base64
from fake_useragent import UserAgent
import re
ua = UserAgent()
# 起始的url地址使用平台给的url地址
start_url = 'http://apigateway.jianjiaoshuju.com/api/v_1/yzmCustomized.html'
headers = {
    'User-Agent': ua.chrome,
    'AppCode': 'cyour code',
    'AppKey': 'your key',
    'AppSecret': 'your secret'
}
# 此打码平台,需要将图片的二进制数据加密
with open('6.jpg', 'rb')as f:
    base64_data = base64.b64encode(f.read()).decode()
    # print(base64_data)

data = {
    'v_pic': base64_data,
    'v_type': 'n4',
}

response = requests.post(url=start_url, headers=headers, data=data)
r = response.content.decode()
code = re.findall('v_code":"(.*?)"',r)[0]
print(code)
print(type(code))

这里的6.jpg就是我们在网页上保存的验证码图片,使用时我们只需要将图片传入这个函数中,调整’v_type’: ‘n4’,的值
在这里插入图片描述
就根据你的验证码类型调整。然后修改那三条登陆之后到用户中心的东西。
现在有很多要什么哪些图中有红绿灯之类的,这个我还不知道有啥办法,好像现在的技术还没到这个地步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值