- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563371 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174234
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
! h, d$ ?/ c$ i) u* |# l- T+ KPython爬虫常用小技巧之设置代理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
|