python爬虫实践之IP的使用

2024-06-08 17:32:03 浏览数 (2)

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

代码语言:javascript复制
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那么就证明代理使用成功了,我们可以直接去访问需要获取的数据网站了。

0 人点赞