西刺代理ip爬虫程序

依然范特西╮ 提交于 2019-11-28 11:05:19

西刺代理爬虫程序:提取免费代理ip

技术栈:python,requests,正则表达式,bs4,xpath


  • 前言

现在很多网站都有反爬虫功能,常见的有判断user-agent,判断一个ip访问服务器的频率。这里我们将第二种,从ip入手,如果每次请求都切换一个ip,这样就可以有效避免被网站封ip了。对于大多数新生不想去买付费代理ip,可以去免费ip代理网站爬取免费的代理ip。这里我们用西刺代理 点击进入链接

值得注意的一点是代理ip的种类,高匿的代理访问服务器才会认为是代理ip访问的,透明的ip访问实际上访问的还是你本地的ip

  1. 开始分析网页

    1. 首先打开用chrome打开西刺高匿ip地址,按下f12查看html
    2. 用chrome html工具找到ip所在的表格在这里插入图片描述
      我们可以看到所有的ip在一个id为ip_list的表格中
    3. 提取数据的方法.这里给大家介绍几种常见的方法
      • 用python的第三方包bs4来解析网页获取ip
      • 用python自带的模块re使用正则表达式来提取
      • 用python第三方包lxml里面的xpath来提取数据(lxml包是运行requests包的必须)
  2. 开始代码实现,我们这里使用xpath实现(上述方法都可以)

    • 请求:requests
    • 数据提取:lxml

    分析table的结构我们发现第一个tr是不需要的,ip地址位于tr的第二个td中,端口port位于tr的第三个td中,ip类型位于第六个td中,下面开始代码实现
    在这里插入图片描述

#假设msg是网页的源html

html = etree.HTML(msg)

table = html.xpath('//table[@id="ip_list"]')[0]     #获取table
trs=table.xpath('//tr')[1:]   #获取table下所有的tr,切片去除tr因为里面没有ip是介绍

for tr in trs:
    ip = tr.xpath('td[2]/text()')  # ip地址
    port = tr.xpath('td[3]/text()')  # 端口port
    types = tr.xpath('td[6]/text()')  # ip类型
    print(ip, port, types)		#这样就获取到每一个ip了

在这里插入图片描述
以上就是获取西刺代理ip的一种方法

author:小川 github:链接
交流请发邮件至w2239559319@gmail.com

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!