python2.7爬取可用代理IP

import urllib2

import random

import time

import re

#from lxml import etree  #第三方模块

def get_proxy(page):

headers = {

‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36‘

}

req = urllib2.Request(‘http://www.xicidaili.com/nn/{}‘.format(page),headers=headers) #构造一个Request对象

response = urllib2.urlopen(req) #发送请求

html = response.read()

proxy_list = []

ip_port_list = re.findall(r‘<tr class=.*?>(.*?)</tr>‘,html,re.S)

# ip_list = re.findall(r‘\d+\.\d+\.\d+\.\d+\‘,html)

print len(ip_port_list)

for i in ip_port_list:

ip = re.findall(‘\d+\.\d+\.\d+\.\d+\.‘,i)[0]

port = re.findall(r‘<td>(\d+)</td>‘,i)[0]

# print ip,port  #打印测试

proxy = ‘{}:{}‘.format(ip,port)

proxy_list.append(proxy)

return proxy_list

def proxy_read(proxy_list,i):

proxy = proxy_list[i]

print u‘当前代理IP:{}‘.format(proxy)

sleep_time = random.randint(1,3)

print ‘等待{}秒‘.format(sleep_time)

time.sleep(sleep_time)

#urllib2 里面的方法

proxt_suport = urllib2.ProxyHandler({‘http‘:proxy}) #构建代理Handler

opener = urllib2.build_opener(proxt_suport) #通过build_opener方法来使用Handler对象,然后创建opener对象

urllib2.install_opener(opener) #把opener对象变成全局的,之后使用的urlopen对象都是全局的

req = urllib2.Request(‘http://httpbin.org/ip‘)

try:

html = urllib2.urlopen(req).read()

print html

except Exception as e:

print e

print u‘***打开失败***‘

print u‘当前ip不可用‘

if __name__ == ‘__nam__‘:

proxy_list = get_proxy(1)

print ‘开始测试‘

for i in range(100):

proxy.read(proxt_list,i)

时间: 2024-09-29 21:54:15

python2.7爬取可用代理IP的相关文章

Python实现爬取可用代理IP

在实现爬虫时,动态设置代理IP可以有效防止反爬虫,但对于普通爬虫初学者需要在代理网站上测试可用代理IP.由于手动测试过程相对比较繁琐,且重复无用过程故编写代码以实现动态抓取可用的代理IP.动态代理IP保存在Json文件中,以供后续具体项目爬虫使用,但所爬取的代理IP是免费IP,所以可能出现当时爬取能用,过一段时间无法使用的情况. 1) 先从西刺代理网站上爬取前10页,速度较快的IP,保存到proxies数组中,其中proxy使用的是requests.get()可直接使用字典格式 1 print(

Python 正则练习(一) 爬取国内代理ip

简单的正则表达式练习,爬取代理 ip. 仅爬取前三页,用正则匹配过滤出 ip 地址和 端口,分别作为key.value 存入 validip 字典. 如果要确定代理 ip 是否真的可用,还需要再对代理 ip 再进行筛查过滤,最终仅仅保存真实可用代理 ip. 可能需要修改的内容: xpath 替代正则进行抓取 ip 和端口: 验证代理 ip 是否可用: 再存入mogodb 数据库替代字典. import re import requests from collections import defa

如何爬取可用的IP代理

上一篇说到对付反爬虫有一个很关键的方法就是使用IP代理,那么我们应该如何获取这些可用的IP代理呢?这里分享一下自己这两天的一些爬取IP代理的心得体会. 1 步骤 1.找到几个提供免费IP代理的网站,获取IP数据源 2.验证对应的IP代理访问出口IP是否跟本机的出口IP一致,得到不一致的IP代理列表 3.根据自身的实验目的验证IP代理的响应速度,进行排序,择优选用 2 具体做法 1.可以上网搜索,有很多,例如西刺.快代理等等 2.可以在这里进行验证 3.这个就根据自身爬虫的需要,看是下载东西还是其

简单爬虫-爬取免费代理ip

环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import requests from pyquery import PyQuery as pq class GetProxy(object): def __init__(self): # 代理ip网站 self.url = 'http://www.xicidaili.com/nn/' self.header

PHP简单爬虫 爬取免费代理ip 一万条

目标站:http://www.xicidaili.com/ 代码: <?php require 'lib/phpQuery.php'; require 'lib/QueryList.php'; require "db/shared/ez_sql_core.php"; require "db/mysql/ez_sql_mysql.php"; require "public/function.php"; use QL\QueryList; //

python扫描proxy并获取可用代理ip列表

mac或linux下可以work的代码如下: # coding=utf-8 import requests import re from bs4 import BeautifulSoup as bs import Queue import threading import random import re headers_useragents = [] headers_referers = [] headers_referers.append('http://www.google.com/?q=

python爬取免费优质IP归属地查询接口

python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就ok了嘛~但是,网上免费接口要么限制访问频率(淘宝的),要么限制访问次数(百度及其他) 没辙了,从百度找到了几个在线查询的接口,要么不够准确(或者说她们的数据库太旧了),要么就是速度太慢了,跟限制访问似的(没办法,小规模人家的服务器的确不够好) 于是乎就想到了百度首页的ip接口,就这货: 为了防止泄露

利用Python爬取可用的代理IP

前言 就以最近发现的一个免费代理IP网站为例:http://www.xicidaili.com/nn/.在使用的时候发现很多IP都用不了. 所以用Python写了个脚本,该脚本可以把能用的代理IP检测出来. 1 #encoding=utf8 2 import urllib2 3 from bs4 import BeautifulSoup 4 import urllib 5 import socket 6 7 User_Agent = 'Mozilla/5.0 (Windows NT 6.3; W

练习--爬取xici可用代理IP

通过爬虫实现xici可以使用的代理IP 端口 主要代码: #!/usr/bin/env python #coding:utf8 import telnetlib from urllib import request import re class getXici(): def __init__(self): self.url = "http://www.xicidaili.com" self.header = {'User-Agent': 'Mozilla/5.0 (Windows N