项目目标

通过爬虫获取“西拉代理”(http://www.xiladaili.com)上的高匿代理,并储存至一个列表。

项目分析

首先对网页进行观察,主体内容如下图所示。

不但指明了代理IP、协议类型,还有存活时间、打分这些数据。有需要的朋友,可以根据存活时间、打分来有选择性地挑选一些代理,这样获得的代理更加稳定。我仅展示最朴素的方法,即爬取网页上的所有代理。

网页下方有翻页按钮,点击不同页码,可以看到网页url也是非常有规律地在变动。

一看到这么规整的数据展示,就想到了表格。我们打开浏览器的开发者模式,定位到这一片数据的源代码。可以看到的所有的数据都藏在名为tbody节点中。

整个项目的思路大致有了,大体有以下三个步骤:
①访问相关页面,读取网页源代码;
②在网页源代码中定位到tbody,从中提取每一行的IP等数据;
③保存至列表中。

在代码实现阶段,我们用selenium模拟浏览器的访问,用BeautifulSoup来解析网页源代码。

    from selenium import webdriverimport numpy as npfrom bs4 import BeautifulSoupdef getFreeProxy(url):# %%打开Chrome浏览器,模拟访问网站browser = webdriver.Chrome(executable_path="chromedriver.exe")pageNumber = np.random.choice(300) + 1 # 改成自己要爬的页面号,我这里就随机挑选一个页面browser.get(url + str(pageNumber))  # 步骤一代码# %% 解析代理数据soup = BeautifulSoup(browser.page_source, "html.parser")  # 步骤二代码proxies = [(r.text.strip().split()[0], r.text.strip().split()[1]) for r in soup.find("tbody").find_all("tr")]  # 步骤三代码return proxiesif __name__=="__main__":url = "http://www.xiladaili.com/gaoni/"getFreeProxy(url)

(步骤三代码这么写,是观察到每一行的数据都保存在tbody节点的一个子节点tr中,本项目中我只关心代理IP地址和代理协议类型,只取了前两列的数据)

至此已经完成了我们的基本功能。

改进一:获取的很多代理实际上是不可用的,能不能筛选一下,只保留能用的代理呢?

改进二:虽然在改进一中,我们显示地指定了浏览器通过代理IP访问网页,我能不能确认一下,实际访问网页的IP就是代理IP而不是本机IP呢?

改进三:当我跑这段代码频繁访问西拉代理的时候,有时候好几秒网页都加载不出来,这是怎么回事?

项目收获

利用爬虫获取免费IP代理相关推荐

  1. 爬虫利器:Python获取免费IP代理

    由于现在很多网站都有反爬虫机制,同一个ip不能频繁访问同一个网站,这就使得我们在进行大量数据爬取时需要使用代理进行伪装,本博客给出几个免费ip代理获取网站爬取ip代理的代码,可以嵌入到不同的爬虫程序中 ...

  2. 你爱我,我爱你,IP被封很头疼【Python爬虫实战:ip代理js逆向采集】

    大家好,我是辣条. 一见不日甚是...应该是一日不见甚是想念[串台了,这是郭德纲老师相声里的梗]. 直接进入今天的主题,相信学过爬虫的朋友们都知道爬虫封ip十分头疼,辣条今天带你获取免费ip代理 爬取 ...

  3. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...

    前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,这样很容易被服务器封IP,因此需要设置IP代理,但又不想花钱买,网上有免费IP代理,但大多都数都是不可 ...

  4. Python每日一练(24)-requests 模块获取免费的代理并检测代理 IP 是否有效

    目录 1. 通过代理服务发送请求 2. 获取免费的代理 IP 3. 检测代理 IP 是否有效 1. 通过代理服务发送请求 在爬取网页的过程中,经常会出现不久前可以爬取的网页现在无法爬取的情况,这是因为 ...

  5. Python创建免费Ip代理池,伪装Ip。

    Python创建免费Ip代理池 主要使用requests第三方库.欸嘿,有了这个,就不用花钱买Ip了,生活小妙招.妙哇. 一.具体思路 1.利用requests爬取免费代理Ip的网页 2.存储列表后, ...

  6. 使用免费ip代理进行投票

    只要是投票系统,必然要限制一个用户投多张票. 如何限制呢?限制ip是最直观最简单的思路,可是代理池可以解决限制ip的情况. 如果投票页面前面加上一个验证码,那程序就会有点困难了. 有些投票使用微信号, ...

  7. win7 asp虚拟服务器,win7怎么利用ASP获取服务器IP地址 win7利用ASP获取服务器IP地址教程...

    win7系统浏览器打开的网页查看服务器ip地址,网络上浏览的网页都是放在服务器上的,那么怎样用ASP获取服务器ip地址呢?今天小编给大家带来ASP获取服务器IP地址的方法,请一起看看下文详细介绍吧. ...

  8. 利用爬虫获取猫眼电影热门前100数据

    利用爬虫获取猫眼电影热门前100数据 实现方法 1:访问网站,获取页面源码 2:解析页面 ,得到想要的数据 3:循环爬取多个页面 4:把数据写入本地文件 ''' 需求:爬取猫眼电影前100的电影信息 ...

  9. 在线网页代理api 获取免费的代理地址

    在线网页代理api,获取免费的代理地址,不间断更新. 接口名称:在线网页代理api 接口平台:开源接口 接口地址:http://japi.juheapi.com/japi/fatch 支持格式:jso ...

最新文章

  1. DeFi 史上最大盗窃案:一个漏洞盗走价值 6 亿美元资产?现已归还近一半
  2. 如何用item pipeline(管道)清洗数据
  3. wine应用运行后字体都是问号
  4. 架构设计--仅是软件开发之第二大影响力?!
  5. python自动化工具哪个好用_微软最强 Python 自动化工具开源了!不用写一行代码!...
  6. 真相了!AI 程序员:我们根本没有 80w 年薪好么?
  7. 软考——(1)J2SE
  8. OPC DA通讯 KEP6.4 DCOM 配置脚本
  9. 三菱fx3u中文手册_3个月高效掌握三菱PLC!四个阶段经验大总结~
  10. 计算机组成原理白中英第五版之总线系统
  11. Protel99SE WIN10系统下无法添加封装库的解决方法
  12. 商业研究(17):以小见大,看互联网经济(4个股权众筹平台,4个领域,10个项目,8个图)
  13. 关于H.264编码原理以及IPB帧
  14. flink流处理示例开发
  15. UDS诊断系列介绍08-19服务
  16. 了解模型预测控制4--自适应,增益调度和非线性MPC
  17. Alexnet详解以及tesnsorflow实现alexnet;什么是alexnet alexnet能做什么;alexnet教程
  18. 赠书福利|一本书是写给美国人看的书,告诉我们,美国科技为什么领先?
  19. 【接口测试】Jenkins+ant+jmeter接口自动化测试及邮件发送
  20. 分区重分配(二十二)

热门文章

  1. 跑步戴什么耳机比较好、精挑五款最佳跑步耳机推荐
  2. workman 日志_workerman
  3. 2022年,Lazada开店要交多少钱
  4. 什么样人适合学平面设计?零门槛入门工具收藏
  5. 【MySQL】—入门介绍
  6. js控制台 console 骚操作-打印图片-自定义样式-字符画
  7. JavaEE企业级实战项目 智牛股第七天 权限与网关的搭建
  8. CPU运算器、控制器、寄存器
  9. 某个section不想被gc-sections remove
  10. uniapp 图片模糊解决方案