python爬虫实践之IP的使用

小白学大数据 2024-03-14 11:25:29

Python爬虫常常会面临自己ip地址被封的情况,也许刚入行的小白就只能等ip解封之后再进行接下来的操作了,但是这样的方式却是最不能借鉴的,万一数据需求量大,那要等到猴年马月呢?所以今天我们就来探讨下如何创建一个IP池并对其进行管理。对刚入行的小白很有帮助,希望大家耐心看下去,需要的朋友可以参考下。
很多的网站都有反爬机制,其中就有这样一条,就是服务器会检查请求的user-agent参数值,如果检查的结果为python,那么服务器就知道这是爬虫,所以为了避免被服务器发现这是爬虫,我们需要添加随机user-agen。这样就可以避免服务器发现这是同一个user-agent发起多次请求。还有一条就是网站会封IP,一般这样的情况就直接添加代理IP就可以,那么,从哪里获取IP呢?小编用的是亿牛云的这个网址,网址链接为:https://www.16yun.cn/,。很多小白会问怎么使用IP,这里介绍一种最简单方便的方式,那就是动态转发代理,我们接下来分享个示例供大家参考下:

#! -*- encoding:utf-8 -*-

    import requests
    import random

    # 要访问的目标页面
    targetUrl = "http://httpbin.org/ip"

    # 要访问的目标HTTPS页面
    # targetUrl = "https://httpbin.org/ip"

    # 代理服务器(产品官网 www.16yun.cn)
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"

    # 代理验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    # 设置 http和https访问都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }


    #  设置IP切换头
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}

    resp = requests.get(targetUrl, proxies=proxies, headers=headers)

    print resp.status_code
    print resp.text


那我们在添加了代理IP之后怎么验证使用的ip是否可用?这里我们可以通过访问IP检测网址验证:http://current.ip.16yun.cn:802,只要返回的是代理IP那么就证明代理使用成功了,我们可以直接去访问需要获取的数据网站了。

...全文
244 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Python_cpp_Java 2024-07-31
  • 打赏
  • 举报
回复

你确定没打错

print后面有括号

37,984

社区成员

发帖
与我相关
我的任务
社区描述
分享Python数据分析、可视化、机器学习、图像处理有关知识和实例
社区管理员
  • 幸运 lucky
  • 江户川亮仔
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧