QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4850|回复: 0
打印 上一主题 下一主题

Python爬虫常用小技巧之设置代理IP

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2021-1-8 17:22 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    9 V. E7 c: J/ J) S7 F) |) @; K9 s
    Python爬虫常用小技巧之设置代理IP
    $ G' S9 n1 _) D* G9 d

    ' x0 {0 d" V0 Q: F5 V8 j2 V3 Z, W3 Z( T设置代理IP的原因5 G- z( U# s4 ]' P; c
    我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站。假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,这样便不会出现因为频繁访问而导致禁止访问的现象。
    ( ]$ ]3 M7 O7 B我们在学习Python爬虫的时候,也经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败。高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,所以下面这篇文章讲述一个爬虫技巧,设置代理IP, N) j+ X# @  p- a' {5 i: T
    代理的获取有很多方式,网上有很多免费的可以去爬取一些试试,但是免费的代理使用起来也是 很吃力的。还有就是现在网上有很多的代理供应商,可以在网上寻找下,然后找家靠谱的使用。毕竟网络太大了,代理供应商肯定也是参差不齐的,所以找到合适的代理还是需要花点时间的。在这里我就是使用了我们长期使用的一家质量好的代理,亿牛云代理,而且是使用的他们的爬虫代理(动态转发)和一般的api模式不一样。这种更简单更方便,对于懒人来说绝对是最佳选择。- T- e% w; C+ `
    具体代码的使用
    9 c2 q6 U: ^# S! @#! -*- encoding:utf-8 -*-
    , R  S4 k+ I% Q/ |
    4 U) z1 q. P: q& t        import requests
    1 P, i# d, z; M$ d/ D        import random
    + H$ o% s+ d% X- n! ~
    * a6 x* k! X# y* i        # 要访问的目标页面
    # G2 y" z$ y0 _$ h+ R! c  R! e        targetUrl = "http://httpbin.org/ip"
    , _" M9 }' E) p* T* I; T
    & P: @/ ^# u. T% G7 `        # 要访问的目标HTTPS页面3 r; }7 L8 \  g* D. B$ H
            # targetUrl = "https://httpbin.org/ip"
    6 e. z" X( \5 t/ I0 P, Q
    / m& ~  e( P& e        # 代理服务器+ b# j; Z  W) Y" o! c1 g: Y, ]
            proxyHost = "t.16yun.cn"
    " q( [8 [' t1 ?        proxyPort = "31111"
    5 s1 m( T: T2 K0 r* p5 G1 O. F9 u
    * G3 U! U8 j! I        # 代理隧道验证信息8 m* C3 b  i9 G# R. F
            proxyUser = "username"
    ) A' u% R# I- f6 B) |        proxyPass = "password"5 Y9 N& g9 d/ x: F5 _

    ) V3 i0 |4 |, C  b3 A3 p" b. \        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {5 W& a9 O% u2 k+ w$ J% _
                "host" : proxyHost,
    1 E. A2 W8 E  a- i& |% {, R: }            "port" : proxyPort,  H: d9 K; Q! s  l
                "user" : proxyUser,
    % S# V3 }3 ^3 _- G* z, w            "pass" : proxyPass,
    4 `- w- q+ L' }4 Y+ s' z9 }2 o        }9 a  L4 h8 d7 v2 B9 v) q
    6 I- _: N! G& Q9 \' E
            # 设置 http和https访问都是用HTTP代理
    / c4 q- _  z4 Z, v        proxies = {9 c+ ]5 x: S5 q; `
                "http"  : proxyMeta,
    ) r, L/ d9 M# L& u' B) Z            "https" : proxyMeta,% D& `; ]6 P' V2 U, c5 @; g/ i! i  \
            }
    4 R/ L0 g" G  K4 `5 V% M- ^8 d( }" E* Z  V' P! y4 C
    9 J6 c3 C( m+ t( P. s4 ^
            #  设置IP切换头; m0 O  c. ]% P- R
            tunnel = random.randint(1,10000)
    0 I! K$ h$ q. d0 _7 P( t% P! R        headers = {"Proxy-Tunnel": str(tunnel)}# b) u! c+ l5 W+ }$ @" r
            resp = requests.get(targetUrl, proxies=proxies, headers=headers)
    % G( Q* S4 V+ t
    " {2 O. l# M- U4 M3 j" D        print resp.status_code8 G! m0 h' _( T4 Z2 e
            print resp.text
    ( J/ @! E8 }% M3 l总结- ~/ {- ~; P* S% n5 A% y
    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流/ B4 V) ]  Y7 i

    ! f4 L6 N2 d0 \0 w
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-21 00:47 , Processed in 0.425664 second(s), 51 queries .

    回顶部