QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4845|回复: 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

    ! h, d$ ?/ c$ i) u* |# l- T+ K
    Python爬虫常用小技巧之设置代理IP

    2 L" B: ?) ]. w5 c" d: g6 x/ j: |3 ]4 y5 P1 c: w9 O  T
    设置代理IP的原因. C9 n4 m" Z' Z! s
    我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站。假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,这样便不会出现因为频繁访问而导致禁止访问的现象。* r1 ~% X, p; K& \' j8 ^
    我们在学习Python爬虫的时候,也经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败。高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,所以下面这篇文章讲述一个爬虫技巧,设置代理IP
    + A0 m& a, k# t代理的获取有很多方式,网上有很多免费的可以去爬取一些试试,但是免费的代理使用起来也是 很吃力的。还有就是现在网上有很多的代理供应商,可以在网上寻找下,然后找家靠谱的使用。毕竟网络太大了,代理供应商肯定也是参差不齐的,所以找到合适的代理还是需要花点时间的。在这里我就是使用了我们长期使用的一家质量好的代理,亿牛云代理,而且是使用的他们的爬虫代理(动态转发)和一般的api模式不一样。这种更简单更方便,对于懒人来说绝对是最佳选择。- X. S* B* @4 j- y  \/ S. k
    具体代码的使用
    ; r" R6 j8 L; b% E/ X, q#! -*- encoding:utf-8 -*-
    0 m0 s" C+ T1 X# \
    ; @5 w; B+ f5 o* ]3 J5 u3 @* @        import requests7 ~* W. z: H% r: Y) W4 v
            import random$ J8 q9 {% m) R; Y5 }! N& G
    7 t8 Y  g" A8 Z: h  f, X) b
            # 要访问的目标页面
    6 u4 ]( i$ U7 u% t' p, U9 i        targetUrl = "http://httpbin.org/ip"0 x: n1 c- z3 W& B) V& F1 ]

    7 I! n! {) ^7 y  j9 {8 z/ G        # 要访问的目标HTTPS页面: w$ h/ K0 S/ T* |! j9 j
            # targetUrl = "https://httpbin.org/ip"
    / E. `9 h2 V  D* N) M* }
    6 S- z. U" f$ Z+ a* P/ J        # 代理服务器  s4 L; }* u1 z# [
            proxyHost = "t.16yun.cn"
    ) C( K$ H  x+ r. o, T! D        proxyPort = "31111": }5 x) Y3 s- ?2 I. ?) o
    : o# q* a$ k5 Q3 b! e+ G+ o$ t
            # 代理隧道验证信息
    & ], G9 n$ R( }; H# K9 u0 R        proxyUser = "username"/ z3 a- H3 w; a. q) `1 @4 T$ a
            proxyPass = "password". f) N, n: @  `1 A, N, C- _- r

    $ ^: w' v8 b" f4 `7 j) y3 d9 I        proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
    $ [$ C- a* I7 v. G1 S" g/ I            "host" : proxyHost,2 \! `, L1 m9 E5 I
                "port" : proxyPort,- n/ r" P! p! e8 _" l9 y; |$ F
                "user" : proxyUser,
    $ w9 Q1 D3 \% m4 V; i/ y" |            "pass" : proxyPass,
    : W) a. {$ J; s" |* x        }9 Q) ~- E% S' K

    , {3 z2 I2 {4 z4 I        # 设置 http和https访问都是用HTTP代理# }# M5 n- D, y/ t
            proxies = {# ?; a0 n- v/ Z
                "http"  : proxyMeta,
    " G; M5 v2 Q. x- X4 q# d( z            "https" : proxyMeta,1 e9 w# m+ v& u8 o
            }5 }! O6 [5 d& t! v

    / i. q8 F* y* }7 a0 B. f
    + R& i, \" @  v, a$ `9 E" A        #  设置IP切换头: ^8 W7 u5 H. `( w9 p! [" S. N3 Y
            tunnel = random.randint(1,10000)9 w1 Q( C. k. P. Q
            headers = {"Proxy-Tunnel": str(tunnel)}; ^# @" H5 r( i* p/ k
            resp = requests.get(targetUrl, proxies=proxies, headers=headers)
    : Q0 v6 U% C+ c% p! B, B* J3 H
    : r5 I0 N) ?. _  m        print resp.status_code
    7 ]" p) ^2 `& I! G5 ]; Q        print resp.text
    5 W- F& ]7 j/ M# B2 T" O" i8 q7 O总结4 ~6 @# z% w, U- m1 Z4 }& h( Q' m) X' c
    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流
    + A9 {6 {  H" Z
    ; F" y; K$ r  i  j6 X. F
    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-18 07:06 , Processed in 0.278245 second(s), 51 queries .

    回顶部