前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python爬取数据时IP被禁怎么解决

python爬取数据时IP被禁怎么解决

原创
作者头像
小白学大数据
发布2023-03-22 16:12:08
5690
发布2023-03-22 16:12:08
举报
文章被收录于专栏:python进阶学习python进阶学习

通常我们要对某些网站或是app进行数据采集时,都需要解决采集软件爬虫和封IP的问题,采集软件暂且滤过,有多年网站、手机APP爬虫定制开发和数据批量采集服务经验,这里整理汇总爬虫IP代理服务器资源,以此来应对封IP的问题,供各位参考

一般通过在web浏览器中设置代理服务器,可以实现隐藏真实IP的目的。同时当IP被网站封禁时,通过在web浏览器上设置代理服务器,可以实现突破封禁的限制。在使用爬虫程序进行大量web数据采集时,常会导致IP被封,在爬虫程序代码自动切换代理服务器,可以解决被封IP的问题。

比如用python写了个爬虫爬取糗事百科:http://www.qiushibaike.com/hi...的历史帖子,爬的挺慢,几秒一个页面,一个多小时后还是被封了ip,这时就考虑上代理IP了

代码语言:javascript
复制
#! -*- 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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档