1.构造代理ip池:

def create_proxy_pool():# 从西拉免费ip代理网站获取代理IP列表r = requests.get('https://www.kuaidaili.com/free/', headers= {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'})# 返回解析得到的的htmlsoup = BeautifulSoup(r.content, 'lxml')# 获取所有ip,构成ips列表ips = soup.findAll('tr')# 初始化ip池空列表proxy_pool = [] # 循环遍历ips列表for i in range(1, len(ips)):# ip_row是ips中的行ip_row = ips[i]# tds是每行中的属性值列表tds = ip_row.findAll("td")# 从一行中提取出proxyproxy = {'http':tds[0].get_text()}# 添加到代理池proxy_pool.append(proxy)return proxy_pool

2.定义代理客户端列表

# 代理客户端列表
user_agents = ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)","Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)","Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1","Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20","Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52"
]if __name__ =='__main__':startworking()

3.创建请求头信息

def create_headers():headers = dict()headers["User-Agent"] = random.choice(user_agents)return headers

4.核心函数

def WorkFunc():page1 = '网页url'# 调用请求头# headers = create_headers()proxy_pool = create_proxy_pool()# print('请求头:%s' % headers)print('代理ip池:%s' % proxy_pool)# 循环构造并向服务器发送50次请求for i in range(300):print('正在进行第%s次访问...' % i)# 从ip池中随机选择一个代理ipproxy = random.choice(proxy_pool)print('当前代理IP: %s' % proxy)# 等待60s,否则会被认为是同一次访问sleep_time = 60print('当前等待时间:%ds' % sleep_time)time.sleep(sleep_time)r = requests.get(url=page1, timeout=10, proxies=proxy, headers= {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'})html = r.contentsoup = BeautifulSoup(html, "lxml")title =  soup.find('h1')# 爬取文章的标题及当前访问量read_count = soup.find('span', attrs={'class': 'read-count'})print('文章标题:%s' % title.get_text())print('当前文章访问量:%s\n' % read_count.get_text())

完整源码详见Python刷访问量,欢迎各位fork or star~

Python构造代理IP池提高访问量相关推荐

  1. Python搭建代理IP池(三)- 检测 IP

    在获取 IP 时,已经成功将各个网站的代理 IP 获取下来了,然后就需要一个检测模块来对所有的代理进行一轮轮的检测,检测可用就设置为满分,不可用分数就减 1,这样就可以实时改变每个代理的可用情况,在获 ...

  2. Python搭建代理IP池(一)- 获取 IP

    使用爬虫时,大部分网站都有一定的反爬措施,有些网站会限制每个 IP 的访问速度或访问次数,超出了它的限制你的 IP 就会被封掉.对于访问速度的处理比较简单,只要间隔一段时间爬取一次就行了,避免频繁访问 ...

  3. Python搭建代理IP池(二)- 存储 IP

    上一文写了如何从代理服务网站提取 IP,本文就讲解如何存储 IP,毕竟代理池还是要有一定量的 IP 数量才行.存储的方式有很多,直接一点的可以放在一个文本文件中,但操作起来不太灵活,而我选择的是 My ...

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

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

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

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

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

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

  7. ProxyPool 爬虫代理IP池(分享)

    GitHub - jhao104/proxy_pool: Python爬虫代理IP池(proxy pool)https://github.com/jhao104/proxy_pool/ProxyPoo ...

  8. 【python】爬虫入门:代理IP池的使用、文件的写入与网易云爬取时的注意事项

    一.概述 在两天前实现利用爬虫爬取网易云音乐用户的各类公开信息之后,我对现有爬虫进行了功能上的增加.主要有: ①.使用代理IP池防止IP被封: ②.将爬取用户的听歌记录.歌单.关注.粉丝这四类数据的代 ...

  9. Python爬虫伪装,请求头User-Agent池,和代理IP池搭建使用

    一.前言 在使用爬虫的时候,很多网站都有一定的反爬措施,甚至在爬取大量的数据或者频繁地访问该网站多次时还可能面临ip被禁,所以这个时候我们通常就可以找一些代理ip,和不用的浏览器来继续爬虫测试.下面就 ...

最新文章

  1. python-数据类型之列表
  2. 一道面试题:用多种方法实现两个数的交换
  3. 企业部署Windows 7指南
  4. 【python】简单记录
  5. 如何为自己的项目在pycharm中设置debug?
  6. linux nginx mysql php 5.5._搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程
  7. 小小算法题(CCF)
  8. 对口计算机专业分数线,湖南省2021年普通高校招生本科批(职高对口类)平行一志愿投档分数线公布...
  9. 095实战 ETL的数据来源,处理,保存
  10. oracle储存过程与函数
  11. 下载《阿里巴巴Java开发手册(详尽版)1.4.0》 与 码出高效,码出质量
  12. Java 实现打印文件详解(附demo)
  13. C语言二维数组指针用法
  14. Socket编程项目VS开发环境配置
  15. Python爬取煎蛋网多页的图片
  16. ewb文件用multisim打开_EWB的使用
  17. uniapp 热更新和整包更新
  18. Apache Drill Architecture Introduction
  19. web安全性测试用例
  20. Oracle数据库客户端安装与配置

热门文章

  1. JAVA程序员学习路线
  2. 丹佛斯变频器通过MODBUS转PROFINET网关与S7-1200PLC进行通信的步骤
  3. UMP认识:(一)系统架构
  4. 三级联动 省市县 json数据
  5. 国内优质原创内容输出平台
  6. Mycat源码修改分表规则的CRUD操作测试与改进
  7. 游戏编辑器制作(1)
  8. 怎么消除视频水印软件?哪个软件能去除视频水印?
  9. oracle和arc,Oracle跟ArcSDE 分开部署方法(转)
  10. 藏宝图(BFS+DFS)