对于一般的小型爬虫,我们爬取某个网站所发出的请求次数少即频率不是很高时,为避免可能出现的IP被封的问题,我们可以设置爬取延时或者规定爬取时长来解决。

1.requests库

import requests
#如果代理需要认证,可以使用proxy='username:password@IP:port'
proxyHttps = '121.33.220.158' #端口:808
proxyHttp = '110.73.8.171' #端口:8123

url = 'http://httpbin.org/get'
proxies={
    'http':'http://'+proxyHttp+':8123',
    'https':'https://'+proxyHttps+'808'
}
'''
    socks5代理使用,首先使用pip安装requests[socks]模块
    proxies={
        'http':'socks5://'+proxy+':port'
        'https':'socks5://'+proxy+':port'
    }
'''
try:
    re = requests.get(url,proxies)
    print(re.text)
except requests.exceptions.ConnectionError as e:
    print('ERROR',e.args)

2.selenium+Headless

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

url = 'http://httpbin.org/get'
service_args=[
    '--proxy=110.73.8.171:8123',
    '--proxy-type=http'
]

# 声明谷歌浏览器对象
#driver = webdriver.Chrome()
#设置浏览器无头模式
option = webdriver.ChromeOptions()
option.add_argument('--headless')
option.add_argument('--disable-gpu') #禁用 GPU 硬件加速,防止出现bug
driver = webdriver.Chrome(options=option,service_args=service_args)
driver.get(url)
print(driver.page_source)

3.代理池的使用

网络上有很多已经封装好的代理池工程可以使用,这里使用此代理池工程,此代理池爬取免费代理网站中的代理IP和端口(获取模块),动态判断其有效性(检测模块)并将有效的代理保存到本地的Redis数据库(存储模块,注意修改自己的端口和密码,具体参见这篇博客),最后建立接口以webAPI的形式暴露可用代理(接口模块),通过接口程序可以动态获取可用代理。使用时首先保持本地redis数据库开启并连接,然后运行代理池工程,最后 运行爬虫工程即可

import requestsPROXY_POOL_URL = 'http://localhost:5555/random' #获取代理IP及端口的URL,此URL暴露随机的可用代理IPdef get_proxy():try:respo = requests.get(PROXY_POOL_URL) #获取代理IP及端口if respo.status_code == 200:return respo.textexcept ConnectionError:return Nonedef use_proxy(getProxy):proxy = getProxyproxies = {'http':'http://'+proxy,'https': 'https://' + proxy}try:response = requests.get('http://httpbin.org/get',proxies=proxies)print(response.text)except requests.exceptions.ConnectionError as e:print('Erroe',e.args)def main():getProxy = get_proxy()use_proxy(getProxy)main()

4.付费代理推荐:阿布云代理(动态版),提供各种爬虫库的接入方式

5.ADSL拨号代理推荐:云立方

Python爬虫学习笔记(使用代理及代理池——解决返回状态码302即IP被封的问题)相关推荐

  1. python爬虫学习笔记 1.9 (Handler处理器 和 自定义Opener)

    python爬虫学习笔记 1.1(通用爬虫和聚焦爬虫) python爬虫学习笔记 1.2 ( HTTP和HTTPS ) python爬虫学习笔记 1.3 str和bytes的区别 python爬虫学习 ...

  2. python爬虫学习笔记 3.9 (了解参考:训练Tesseract)

    python爬虫学习笔记 3.9 (了解参考:训练Tesseract) 参考阅读:训练Tesseract 要使用 Tesseract 的功能,比如后面的示例中训练程序识别字母,要先在系统中设置一 个新 ...

  3. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  4. python爬虫学习笔记3.2-urllib和request练习

    python爬虫学习笔记3.2-urllib和request练习 一.urllib练习 1.百度贴吧案例 需求 分析 手动测试查询流程 观察页面 分析特殊部分 https://tieba.baidu. ...

  5. python爬虫学习笔记2模拟登录与数据库

    前言 为了加入学校里面一个技术小组,我接受了写一个爬取学校网站通知公告的任务.这个任务比以前写的爬虫更难的地方在于,需要模拟登录才能获得页面,以及将得到的数据存入数据库. 本文按照日期来记录我完成任务 ...

  6. Python爬虫学习笔记-第三课(网络请求模块下)

    网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...

  7. Python爬虫学习笔记:概念、知识和简单应用

    Python爬虫:概念.知识和简单应用 什么是爬虫? 使用的开发工具 一个简单的爬虫实例 Web请求过程分析 HTTP协议 请求头中的重要内容 响应头中的重要内容 请求方式 requests 安装 G ...

  8. <python爬虫之JS逆向实例-2>某宇创-状态码521-加速乐

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵犯了您的合法权益,请告知,我将及时更正.删除,谢谢.邮箱地址:lc1139411732@163.com 目标站点:aHR0cHM6Ly93 ...

  9. 爬虫python能做游戏吗_一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!...

    1.基本抓取网页 get方法 post方法 2.使用代理IP 在开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP: 在urllib2包中有ProxyHandler类,通过此类可以设置代 ...

最新文章

  1. python编程入门与案例详解课后题答案-Python入门之三角函数sin()函数实例详解
  2. Jon Person教你如何用.NET/.NETCF写GPS应用程序。
  3. 谈谈mysql优化_浅谈MySQL SQL优化
  4. String类得常用方法
  5. 细说JDK动态代理的实现原理
  6. linux input输入子系统分析《一》:初识input输入子系统
  7. ASP.NET性能监控和优化入门
  8. 【Tensorflow】tensorboard小结
  9. C++ 八股文(一)
  10. scrapy+selenium之中国裁判文书网文书爬取
  11. 逆向PPTV视频真实播放地址全过程(Java版)
  12. 基于三点说构成的夹角提取特征点
  13. sata7p 定义_SATA接口定义
  14. MoveIt!入门教程-简介
  15. 浅谈计算机应用的认识,浅谈《计算机应用基础》教学
  16. 中国大学MOOC课程《程序设计入门——C语言》翁恺老师 第六周测试题 高精度小数(习题记录)
  17. 关于消息推送服务的十问十答
  18. DBA常用命令——数据库导入导出文件
  19. matlab程序模拟微信抢红包,js模拟微信抢红包算法的讨论
  20. Hi3521A Qt5.6 qtmultimedia 安装

热门文章

  1. Date日期类型转换
  2. 交通事故检测识别笔记
  3. Android开发培训(01)--开始
  4. Eureka基础之EurekaServer单机版搭建
  5. 斐讯K1 K2 开启Telnet
  6. 如何验签名真伪?法大大手写签名识别功能来了!
  7. ARCGIS/MAPGIS/MAPINFO/CAD配准方法汇总
  8. AutoCAD Inventor 2010安装指导
  9. 国家级重点实验室申报流程是什么?
  10. Windows 沙盒配置