做测试前需要先获取一个可用的代理,搜索引擎搜索“代理”关键字,就可以看到很多代理服务网站,会有很多免费代理可以使用,推荐www.xicidaili.com,以下是自动获取西刺代理网站的代理ip

# IP地址取自国内髙匿代理IP网站:http://www.xicidaili.com/nn/
# 仅仅爬取首页IP地址就足够一般使用
from bs4 import BeautifulSoup
import requests
import randomurl = 'http://www.xicidaili.com/nn/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'}
def get_ip_list(url, headers):web_data = requests.get(url, headers=headers)soup = BeautifulSoup(web_data.text, 'lxml')ips = soup.find_all('tr')ip_list = []for i in range(1, len(ips)):ip_info = ips[i]tds = ip_info.find_all('td')ip_list.append(tds[1].text + ':' + tds[2].text)return ip_listdef get_random_ip(ip_list):proxy_list = []for ip in ip_list:proxy_list.append('http://' + ip)proxy_ip = random.choice(proxy_list)proxies = {'http': proxy_ip}return proxiesif __name__ == '__main__':ip_list = get_ip_list(url, headers=headers)proxies = get_random_ip(ip_list)print(proxies)#函数get_ip_list(url, headers)传入url和headers,最后返回一个IP列表,列表的元素类似42.84.226.65:8888格式,这个列表包括国内髙匿代理IP网站首页所有IP地址和端口。

但是免费的代理大多数时候是不好用的,比较靠谱的是购买付费代理。

函数get_random_ip(ip_list)传入第一个函数得到的列表,返回一个随机的proxies,这个proxies可以传入到requests的get方法中,这样就可以做到每次运行都使用不同的IP访问被爬取的网站,有效地避免了真实IP被封的风险。

把获取的代理传入:

headers = {'User-Agent':'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3 like Mac OS X; wo-SN) AppleWebKit/535.16.1 (KHTML, like Gecko) Version/4.0.5 Mobile/8B114 Safari/6535.16.1'
}
resp = requests.get('https://www.baidu.com',proxies = proxies,headers = headers)
print(resp.text)

就可以通过代理ip获取网站数据了

Python爬虫代理IP的使用相关推荐

  1. python 代理ip池_GitHub - xuan525/proxy_pool: Python爬虫代理IP池(proxy pool)

    ProxyPool 爬虫代理IP池 ______ ______ _ | ___ \_ | ___ \ | | | |_/ / \__ __ __ _ __ _ | |_/ /___ ___ | | | ...

  2. python 爬虫工具 butter_GitHub - TheButterflyOdor/proxy_pool: Python爬虫代理IP池(proxy pool)

    爬虫IP代理池 ______ ______ _ | ___ \_ | ___ \ | | | |_/ / \__ __ __ _ __ _ | |_/ /___ ___ | | | __/| _// ...

  3. Python爬虫代理ip异常和超时解决方案

    Python爬虫中的代理ip异常和超时如何解决?程序员在敲代码的过程中,一定会出现一定的错误,特别是像Python爬虫这种程序,并不能肯定每次请求都能保障稳定的返回同样的结果,例如反爬虫机制的强化,代 ...

  4. Python爬虫-代理ip池建立

    代理IP池建立 前言 之前提到过urllib和requests的利用代理ip的访问方式 . https://blog.csdn.net/zhouchen1998/article/details/813 ...

  5. python爬虫——代理IP

    代理:破解封IP这种反爬机制. 什么是代理: 代理服务器. 代理的作用: 突破自身IP访问的限制. 隐藏自身真实IP 代理相关的网站: - 快代理 西祠代理 www.goubanjia.com htt ...

  6. python爬虫 - 代理ip正确使用方法

    主要内容:代理ip使用原理,怎么在自己的爬虫里设置代理ip,怎么知道代理ip是否生效,没生效的话哪里出了问题,个人使用的代理ip(付费). 目录 代理ip原理 输入网址后发生了什么呢? 代理ip做了什 ...

  7. Python爬虫 | 代理IP的获取和使用

    GiThub项目地址:https://github.com/xylon666/Proxy_IP 在使用爬虫大规模爬取网站信息时,有时会遇到反爬虫策略,比如当网站检测到一个IP地址频繁访问时,就会默认其 ...

  8. 关于python爬虫代理ip设置proxies的问题

    本人在学习爬虫的过程中学习如何设置代理ip,但是遇到了request请求中proxies参数编写的问题 首先必须知道proxies参数是一个字典类型 proxies={ 'http': 'http:/ ...

  9. Python爬虫代理IP(1)

    定义 代替原来的IP去对接网络的IP 作用 隐藏自身真实IP,避免被目标网站封掉 分类 高匿代理 web站点只能看到代理ip 普通代理 web站点知道这次请求是有人通过代理IP访问的,但不知道用户的真 ...

最新文章

  1. HTTP长连接服务器端推技术
  2. node封装mysql模块
  3. Centos7更改默认启动模式
  4. 块存储,文件存储和对象存储
  5. 转 一个SMD 0805的LED的电流,电压,亮度关系表
  6. CISCO专用协议CDP
  7. Java高级架构之FastDFS分布式文件集群
  8. Cocos2d-x学习笔记(19)(TestCpp源代码分析-3)
  9. CodeProject每日精选: Progress controls 进度条
  10. Servlet异步处理性能优化的过程
  11. 深度装机大师一键重装_“云骑士一键重装系统”,看标题就知道装系统原来如此简单...
  12. MTK 6589暗码切换开机LOGO(不适应NAND 的FLASH)
  13. 计算机大神专业小说,大神作品排行榜:网络小说大神级作者前50名
  14. 乾隆年间贪污贿赂成风:皇帝敛财不逊臣子
  15. 谷歌chrome浏览器被hao123 360等劫持问题解决方案
  16. 安装mysql 遇到问题
  17. 两个PDF比较标出差异_[连玉君专栏]如何检验分组回归后的组间系数差异?
  18. 诸葛 理解产品、交互和运营
  19. js中数组filter过滤奇偶数_js--数组的filter()过滤方法的使用
  20. PHP 调用bing壁纸接口

热门文章

  1. 纯css3壁炉挂袜子烤火动画
  2. Vue的事件处理,点击事件
  3. snipaste 截图工具——可以使图片悬浮在任何软件上,方便对比
  4. 章鱼网络Louis:发现Web3商业价值
  5. Oracle RAC 搭建笔记
  6. 【Tech-Android-Other】Android性能优化
  7. Point(类与构造)
  8. 第52届天九战略股东联谊会在厦门成功举办
  9. JsonAjaxi18n
  10. [zt]凝视5分钟的.......