利用Python爬取可用的代理IP_python

前言

就以最近发现的一个免费代理IP网站为例:http://www.xicidaili.com/nn/。在使用的时候发现很多IP都用不了。

所以用Python写了个脚本,该脚本可以把能用的代理IP检测出来。

脚本如下:

#encoding=utf8
import urllib2
from bs4 import BeautifulSoup
import urllib
import socket

User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'
header = {}
header['User-Agent'] = User_Agent

'''
获取所有代理IP地址
'''
def getProxyIp():
 proxy = []
 for i in range(1,2):
  try:
   url = 'http://www.xicidaili.com/nn/'+str(i)
   req = urllib2.Request(url,headers=header)
   res = urllib2.urlopen(req).read()
   soup = BeautifulSoup(res)
   ips = soup.findAll('tr')
   for x in range(1,len(ips)):
    ip = ips[x]
    tds = ip.findAll("td")
    ip_temp = tds[1].contents[0]+"\t"+tds[2].contents[0]
    proxy.append(ip_temp)
  except:
   continue
 return proxy

'''
验证获得的代理IP地址是否可用
'''
def validateIp(proxy):
 url = "http://ip.chinaz.com/getip.aspx"
 f = open("E:\ip.txt","w")
 socket.setdefaulttimeout(3)
 for i in range(0,len(proxy)):
  try:
   ip = proxy[i].strip().split("\t")
   proxy_host = "http://"+ip[0]+":"+ip[1]
   proxy_temp = {"http":proxy_host}
   res = urllib.urlopen(url,proxies=proxy_temp).read()
   f.write(proxy[i]+'\n')
   print proxy[i]
  except Exception,e:
   continue
 f.close()

if __name__ == '__main__':
 proxy = getProxyIp()
 validateIp(proxy)

 运行成功后,打开E盘下的文件,可以看到如下可用的代理IP地址和端口:

总结

这只是爬取的第一页的IP地址,如有需要,可以多爬取几页。同时,该网站是时时更新的,建议爬取时只爬取前几页的即可。以上就是本文的全部内容,希望对大家学习使用Python能有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, 代理IP
, 爬取代理ip
python抓取代理ip
python 验证代理可用、python爬取动态网页、python爬取图片、python爬虫爬取新闻、python爬取网页数据,以便于您获取更多的相关知识。

时间: 2024-08-22 15:12:10

利用Python爬取可用的代理IP_python的相关文章

Python爬取三国演义的实现方法_python

本文的爬虫教程分为四部:      1.从哪爬 where      2.爬什么 what      3.怎么爬 how      4.爬了之后信息如何保存 save 一.从哪爬 三国演义 二.爬什么 三国演义全文 三.怎么爬 在Chrome页面打开F12,就可以发现文章内容在节点 <div id="con" class="bookyuanjiao"> 只要找到这个节点,然后把内容写入到一个html文件即可. content = soup.find(&q

Python爬取京东的商品分类与链接_python

前言 本文主要的知识点是使用Python的BeautifulSoup进行多层的遍历. 如图所示.只是一个简单的哈,不是爬取里面的隐藏的东西. 示例代码 from bs4 import BeautifulSoup as bs import requests headers = { "host": "www.jd.com", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWe

python爬取页面数据错误,连续爬很多页数。我主要改变的是post里面的参数pageno

问题描述 python爬取页面数据错误,连续爬很多页数.我主要改变的是post里面的参数pageno 爬数据的时候,比如有800页数据要爬,爬到400多页会出现返回400错误,没有数据.但是如果将程序从400页到800再重新爬,又不会报错. 求解决方法

微博爬虫-求助。用python爬取微博用户的粉丝列表及粉丝的粉丝列表

问题描述 求助.用python爬取微博用户的粉丝列表及粉丝的粉丝列表 急需一份能爬取微博用户的粉丝列表及对应粉丝的粉丝列表搭建一个实验平台,由于自己编程能力太弱,所以希望好心人能给一份相应的python代码(其他语言编写的能运行的也可),在线等,急求! 解决方案 Python:获取新浪微博用户的收听列表和粉丝列表微博粉丝 解决方案二: python爬取糗百 模式不变 改一下正则就可以 也可以用sqllite保存 .正则自己网上看一下就回了 解决方案三: urllib请求页面获取response

python爬取网站数据保存使用的方法_python

编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了.问题要从文字的编码讲起.原本的英文编码只有0~255,刚好是8位1个字节.为了表示各种不同的语言,自然要进行扩充.中文的话有GB系列.可能还听说过Unicode和UTF-8,那么,它们之间是什么关系呢?Unicode是一种编码方案,又称万国码,可见其包含之广.但是具体存储到计算机上,并不用这种编码,可以说它起着一个中间人的作用.你可以再把Unicode编码(encode)为UTF-8,或者GB,再存储到计算机

Python爬取APP下载链接的实现方法_python

首先是准备工作 Python 2.7.11:下载python Pycharm:下载Pycharm 其中python2和python3目前同步发行,我这里使用的是python2作为环境.Pycharm是一款比较高效的Python IDE,但是需要付费. 实现的基本思路 首先我们的目标网站:安卓市场 点击[应用],进入我们的关键页面: 跳转到应用界面后我们需要关注三个地方,下图红色方框标出: 首先关注地址栏的URL,再关注免费下载按钮,然后关注底端的翻页选项.点击"免费下载"按钮就会立即下

反爬虫-菜鸟求助,大神请进:python爬取某东评论数据遇到的问题

问题描述 菜鸟求助,大神请进:python爬取某东评论数据遇到的问题 python爬取京东评论数据,爬10页的评论没问题,后面的评论就不断重复,到底是什么原因? 解决方案 先看是不是服务器返回的内容 然后就是你请求的参数有问题 所有重复请求 解决方案二: 应该是url没去重吧 解决方案三: 最近看到一个csdn的博客专门讲如何写电商爬虫的,地址是:http://blog.csdn.net/youmumzcs/article/details/51373830,楼主可以参考

python 爬取网站,没有正确的返回值?

问题描述 python 爬取网站,没有正确的返回值? #coding=utf-8 import sys import time import requests #from lxml import etree from PIL import Image reload(sys) sys.setdefaultencoding('utf-8') time=int(time.time()) session=requests.session() user_agent='Mozilla/5.0 (Window

python 爬取html代码后,入库问题

问题描述 python 爬取html代码后,入库问题 我用python 爬取html代码,并把代码存入数据库,老是存不进去..因为里面有单引号,双引号等.,.,一系列特殊字符,有没有大神知道什么类库,,可以完成html的转义(能入库的那种)..跪求 解决方案 单引号,双引号等字符可以存进数据库啊. 你可以在你的数据库里设置编码为utf-8. 解决方案二: 数据库也可以存放这些字符的,只要你跟插入的数据库的引号等能否区分开,比如转义等 解决方案三: 可以去官方搜索下相关库文件(测试回答) 解决方案