使用Python爬虫获得免费代理,并在自己以后的爬虫项目中使用代理

import urllib.request
from lxml import etree


def test_http(ip_host):
    # 测试http代理是否有效
    # 调用ProxyHandler  代理IP的形式是字典
    px = urllib.request.ProxyHandler({
   'http':ip_host})
    # 用build_opener()来构建一个opener对象
    opener = urllib.request.build_opener(px)
    # 然后调用构建好的opener对象里面的open方法来发生请求。
    # 实际上urlopen也是类似这样使用内部定义好的opener.open(),这里就相当于我们自己重写。
    try:
        res = urllib.request.Request('http://www.baidu.com')
        response = opener.open(res,timeout=5)  # 添加相应的时间延时

        if response:
            print('HTTP @@代理有效(>_<): ', ip_host)
            with open('http.txt', 'w') as f:
                f.write(ip_host + '\n')
    except:
        print('HTTP @@代理无效(X_X!):',ip_host)


def test_https(ip_host):
    # 测试https代理是否有效
    # 调用ProxyHandler  代理IP的形式是字典
    px = urllib.request.ProxyHandler({
   'https':ip_host})
    # 用build_opener()来构建一个opener对象
    opener = urllib.request.build_opener(px)
    # 然后调用构建好的opener对象里面的open方法来发生请求。
    # 实际上urlopen也是类似这样使用内部定义好的opener.open(),这里就相当于我们自己重写。
    try:
        res = urllib.request.Request('https://www.qunar.com/')
        response = opener.open(res,timeout=5)  # 添加相应的时间延时

        if response:
            print('HTTPS__代理有效(>_<): ', ip_host)
            with open('https.txt', 'w') as f:
                f.write(ip_host + '\n')
    except:
        print('HTTPS__代理无效(X_X!):', ip_host)


def get_ip(num):
    print('正在搜寻第 %s 的内容',num)
    url = 'http://www.xicidaili.com/nn/' + str(num)
    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'
    }
    res = urllib.request.Request(url,headers=headers)
    response = urllib.request.urlopen(res)
    response = response.read()

    html = etree.HTML(response)  # 转化这个位置 不用解码
    ip_lists = html.xpath('//div//tr')  # 节点
    for tem in ip_lists:
        ip = tem.xpath('./td[2]/text()')
        if not ip:                  # 如果列表是空的跳过本次循环 这个主要是针对最上面的标签问题
            continue
        ip = ip[0]  # xpath 提取数据以后返回的是列表
        host = tem.xpath('./td[3]/text()')[0]
        tcp_type = tem.xpath('./td[6]/text()')[0]  # 获得协议类型

        if tcp_type == 'HTTP':
            # 判断是否是http协议
            ip_host = ip + ':' + host   # 拼接将要使用的地址和端口
            test_http(ip_host)  # 测试代理的有效性

        elif tcp_type == 'HTTPS':
            ip_host = ip + ':' + host   # 拼接将要使用的地址和端口
            test_https(ip_host)  # 测试代理的有效性

        else:
            # 可能还会有其他类型的协议
            pass


if __name__ == '__main__':
    page = int(input('输入要爬取的页数:'))
    for num in range(1,page+1):
        get_ip(num)
上面的代码爬取的是西刺代理http://www.xicidaili.com/nn/1 
并验证代理的有效性,基于 http 和 https 他们的协议不同验证的网站的协议也不同,
并且要保持一一对应 。
https://www.qunar.com/ 验证https协议,http://www.baidu.com 验证http协议。
以后再程序中使用代理也要注意网站的协议类型。上面的案例中我们在验证代理有
效性的同时也写出了如何在urllib中如何使用代理
 

Python2.*爬虫获取免费有效IP代理

  • idKevin
  • idKevin
  • 2017年07月18日 14:33
  • 3240
爬虫代理的获取代码获取网站免费的代理IP

Python爬虫之使用代理爬取

  • haeasringnar
  • haeasringnar
  • 2018年01月23日 21:30
  • 91
#代理服务器需要购买,也有免费的https://www.kuaidaili.com/ http://www.xicidaili.com/ import urllib.request url = '...
广告

使用python为爬虫获取免费代理ip

  • qq2667126427
  • qq2667126427
  • 2018年03月03日 11:14
  • 93
免费代理ip的爬取 爬虫一直是python使用的一个重要部分,而许多网站也为此做了许多反爬措施,其中爬虫访问过于频繁直接封ip地址也作为一种“伤敌一千,自损八百”的方法被许多网站采用,代理ip...

Python爬虫设置动态代理(在线获取)

  • JosephPai
  • JosephPai
  • 2017年12月25日 20:41
  • 815
问题在写爬虫的早期,一些小的练手项目,并不会涉及到IP的问题,用默认的网络爬一下就OK了。但是一旦面临较大的数据量,较多条目的数据,意味着更多的请求。就有了自己默认IP被封的可能性。一个合格的网站为了...

【python爬虫】python使用代理爬虫例子

  • qqxx6661
  • qqxx6661
  • 2016年10月07日 18:50
  • 704
原文地址:http://www.cnblogs.com/bbcar/p/3424790.html 侵删 #coding:utf-8 import urllib2 def url_user_age...

Python爬虫技巧---设置代理IP

  • Lammonpeter
  • Lammonpeter
  • 2016年10月25日 00:17
  • 56756
Python爬虫技巧之设置代理IP 在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术,高强度、高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网...

给爬虫加上Shadowsocks代理

  • nghuyong
  • nghuyong
  • 2018年01月26日 18:16
  • 330
起源遇到抓取一个境外的网站,浏览器可以正常访问,但是requests请求却一直被拒绝了!折腾了好久,才发现,关了Shadowsocks浏览器也不能访问!原来,这个站点直接屏蔽了国内的IP所以,得给爬虫...

Python 爬虫入门(二)—— IP代理使用

  • liujiandu101
  • liujiandu101
  • 2016年07月13日 23:13
  • 1456
Python 爬虫入门(二)—— IP代理使用 时间 2016-01-25 11:40:00  Python_博客园 原文  http://www.cnblogs.com/hearzeus/p...

Python3网络爬虫(十一):爬虫黑科技之让你的爬虫程序更像人类用户的行为(代理IP池等)

转载请注明作者和出处:http://blog.csdn.net/c406495762 运行平台: Windows Python版本: Python3.x IDE: Sublime text3 ...
  • c406495762
  • c406495762
  • 2017年05月28日 16:07
  • 18284

python 爬虫入门(3) proxy详解 代理详解

  • qq_36336522
  • qq_36336522
  • 2017年08月07日 11:09
  • 1757
0x00 前言 大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用。HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,典型的有Ng...

Python代理使用

  • Marvel__Dead
  • Marvel__Dead
  • 2018年02月24日 15:47
  • 127
“合群才是你堕落的开始” “堕落得心安理得” 一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会会禁止这个IP...

利用代理服务器的简单爬虫程序

  • weiyudang11
  • weiyudang11
  • 2016年08月26日 14:06
  • 1006
简单的爬虫,用到的知识点: 1、代理服务器 2、多线程 需要提高的: 1、分布式机制#encoding=utf8 import os from bs4 import BeautifulSoup...

构建爬虫代理池

  • nghuyong
  • nghuyong
  • 2017年11月01日 15:56
  • 5387
proxypoolproxypool是一个自动抓取免费代理并检测入库的程序,并提供开放的实时API服务:proxypool-open-WebAPI使用本项目采用python3进行开发,建议使用virt...

Python3爬虫之代理的使用

  • qq_33733970
  • qq_33733970
  • 2017年09月08日 07:16
  • 298
import requests import gevent import re # from crawl import ua from gevent import monkeymonkey.patch...

Python爬虫IP代理池的建立和使用

  • sinat_22594309
  • sinat_22594309
  • 2016年12月03日 13:37
  • 9323
采用IP代理的方法避免短时间大量访问某网站服务器导致IP被封的情况,包括从网上抓取代理IP和端口以及验证其有效性。...

python爬虫入门(二)——爬取代理IP

  • MTbaby
  • MTbaby
  • 2017年07月21日 15:30
  • 1281
在我们爬虫的过程中,难免会遇到比较恶心的网站(安全性较高),来阻止我们的爬虫,跑着跑着 就断掉了!报错了啊!丢失连接之类的。幸幸苦苦的抓了半天又得从头来,心累啊!这就是网站的反爬虫在起作用了。一般来说...

利用Python爬取可用的代理IP

  • fantacy10000
  • fantacy10000
  • 2017年08月05日 16:03
  • 3262
我们平时在用Python爬虫时,有时会要用到IP代理,有时因为IP被封禁导致需要更换IP进行爬取。 网上有很多的免费代理IP网站,但不是所有的ip都能用,所以这篇文章教大家如何爬取可用的代理IP。 ...

第四章 爬取西刺免费代理ip 并应用到scrapy

  • shaququ
  • shaququ
  • 2017年08月25日 23:43
  • 1237
1.获取免费代理ip #!/usr/bin/env python # -*- coding: utf-8 -*- """ @author: liuyc @file: crawl_xici_ip.py...

python-快速使用urllib爬取网页(6-代理服务器)

通过上面的学习,我们发现爬取的时候会出现一下问题1、网站不能被爬取,即网站设置了反爬取 2、字符码的问题 3、爬取的时候超时了,我们没爬取成功a、模拟浏览器访问网页的两种方法 b、采用编码解码 ...
  • qq_38262266
  • qq_38262266
  • 2017年12月24日 10:17
  • 218

python爬虫之抓取代理服务器IP

  • hesong1120
  • hesong1120
  • 2018年01月06日 19:21
  • 319
转载请标明出处: http://blog.csdn.net/hesong1120/article/details/78990975 本文出自:hesong的专栏 前言 使用爬虫...
等级: 
1级,点击查看等级说明
访问量:  1
积分:  10
排名:  0

文章分类

  • python爬虫
    1篇

文章存档

  • 2018年4月
    1篇

博主热门文章

  • 使用Python爬虫获得免费代理,并在自己以后的爬虫项目中使用代理
    0


你可能感兴趣的:(python爬虫,设置ip代理,Python爬虫使用IP代理,urllib使用IP代理)