IP代理软件,http代理,API提取-黑洞HTTP

黑洞HTTP

您的位置: 首页 > 新闻资讯 > HTTP代理 > 正文

Python爬虫如何使用http代理IP?

发布时间:2019年05月17日 来源:互联网

  Python爬虫如何使用http代理IP?简单的说,代理就是换个身份。网络中的身份之一就是IP。比如,我们身在墙内,想要访问google、u2b、fb等,直接访问是404,所以要换个不会被墙的IP,比如国外的IP等。这个就是简单的代理。当然,突破防火墙是违法行为,请大家不要以身试法。


Python爬虫如何使用http代理IP?


  在爬虫中,有些网站可能为了防止爬虫或者DDOS等,会记录每个IP的访问次数,比如,有些网站允许一个IP在1s(或者别的)只能访问10次等,那么我们就需要访问一次换一个IP(具体什么策略,自己决定)。


  那么问题来了,这些代理从哪得到?对于公司来讲,买代理IP。但是对于个人的话,可能会有浪费。那么怎么办呢?网上有很多免费的代理IP网站,但是手动更改的话,很浪费时间,并且免费的IP有很多不可用。所以,我们可以用爬虫爬那么IP。用上一节的代码,完全可以做到。这里我们用http://www.xicidaili.com/nn/1测试,声明:仅学习交流,切勿用作商业用途等,当然,因为免费的代理可用率都很低,所以免费代理一般用于我们学习交流用,真正企业需要采集数据,建议购买付费的代理IP,比如黑洞HTTP,能够起到事半功倍的效果。


  2.获取代理IP,代码如下:


  #encoding=utf8


  import urllib2


  import BeautifulSoup


  User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'


  header = {}


  header['User-Agent'] = User_Agent


  url = 'http://www.xicidaili.com/nn/1'


  req = urllib2.Request(url,headers=header)


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


  soup = BeautifulSoup.BeautifulSoup(res)


  ips = soup.findAll('tr')


  f = open("../src/proxy","w")


  for x in range(1,len(ips)):


  ip = ips[x]


  tds = ip.findAll("td")


  ip_temp = tds[2].contents[0]+"\t"+tds[3].contents[0]+"\n"


  # print tds[2].contents[0]+"\t"+tds[3].contents[0]


  f.write(ip_temp)


  代码说明:


  a).这里我们使用的urllib2模块,因为,这个请求有点特殊,服务器会验证请求中的header(如有疑问,可参考http的相关资料)


  b).urllib2与urllib的区别在于,urllib2发送请求的时候可携带参数(我现在只用到这点区别)


  c).open()用于打开文件,第一个参数是文件的路径可以填绝对路径,例如E:\\proxy(”\”在编程中是特殊字符,要用”\\”代表实际的”\”)。也可以是相对路径,比    如”../src/proxy”,就是文件相对于代码的位置。第二个参数”w”,代表打开文件的权限,w代表写权限,r代表读权限。这个在很多系统中都通用。比如,linux等


  d).for循环,如果之前学过java或者其他高级语言,可能不太习惯,因为他们用的是for(;;)这样的。python中的for循环,in 表示X的取值,按顺序取到in后面的参数


  特别注意:别忘了for语句后面的冒号(”:”)


  c).range函数,代表生成一系列数,如果range(0,6,1),意思就是从0开始,到6结束(不包括6),每次增加1(也就是步长为1),生成一个数组,结果就是[0, 1, 2, 3, 4, 5]


  e).f.write()就是往文件里面写数据,如果打开文件的时候,没有”w”权限,则无法写入。


  页面截图:


  运行结果:


  3.并不是所有的代理都能用,原因有很多,可能是我们所处的网络连不到这个代理,也有可能是这个代理,连不到我们的目标网址,所以,我们要验证一下。以http://ip.chinaz.com/getip.aspx作为目标网址为例(这个是测试ip地址的网址)代码如下:


  复制代码


  #encoding=utf8


  import urllib


  import socket


  socket.setdefaulttimeout(3)


  f = open("../src/proxy")


  lines = f.readlines()


  proxys = []


  for i in range(0,len(lines)):


  ip = lines[i].strip("\n").split("\t")


  proxy_host = "http://"+ip[0]+":"+ip[1]


  proxy_temp = {"http":proxy_host}


  proxys.append(proxy_temp)


  url = "http://ip.chinaz.com/getip.aspx"


  for proxy in proxys:


  try:


  res = urllib.urlopen(url,proxies=proxy).read()


  print res


  except Exception,e:


  print proxy


  print e


  continue


  复制代码


  代码说明:


  a).ip = lines[i].strip(“\n”).split(“\t”) 这个是去掉每行末尾的换行符(也就是”\n”),然后以制表符(也就是”\t”)分割字符串为字符串数组


  b).proxy_temp = {“http”:proxy_host}其中http代表代理的类型,除了http之外还有https,socket等这里就以http为例


  c).urllib.urlopen(url,proxies=proxy) 其中proxies就是代理。以代理模式访问目标网址


  d).socket.setdefaulttimeout(3)设置全局超时时间为3s,也就是说,如果一个请求3s内还没有响应,就结束访问,并返回timeout(超时)


  运行结果如图:


  从结果看可用的并不是很多。但是也够个人用了。


  至此,IP代理的使用就结束了。


相关文章内容简介

1 Python爬虫如何使用http代理IP?

  Python爬虫如何使用http代理IP?简单的说,代理就是换个身份。网络中的身份之一就是IP。比如,我们身在墙内,想要访问google、u2b、fb等,直接访问是404,所以要换个不会被墙的IP,比如国外的IP等。这个就是简单的代理。当然,突破防火墙是违法行为,请大家不要以身试法。  在爬虫中,有些网站可能为了防止爬虫或者DDOS等,会记录每个IP的访问次数,比如,有些网站允许一个IP在1s(或者别的)只能访问10次等,那么我们就需要访问一次换一个IP(具体什么策略,自己决定)。  那么问题来了,这些代理从哪得到?对于公司来讲,买代理IP。但是对于个人的话,可能会有浪费。那么怎么办呢?网上有很多免费的代理IP网站,但是手动更改的话,很浪费时间,并且免费的IP有很多不可用。所以,我们可以用爬虫爬那么IP。用上一节的代码,完全可以做到。这里我们用http://www.xicidaili. [阅读全文]

热门标签

最新标签

推荐阅读

  1. 07

    2019-05

    代理IP怎么解决IP不足的问题?

    在网络爬虫抓取信息的过程中,经常会被网站禁止访问但是却一直找不到原因,这也是让很多人头疼的原因,这里有几个方面可以帮你初步检测一下到底是哪里出了问题。

  2. 18

    2019-03

    新手如何自学大数据,代理IP能帮你!

    现在的大数据开发人员很是吃香想必很多人都知道,因此学习大数据的人在不断的增加,但是学习大数据的方式也各有选择,有的人选择参加大数据培训让老师教导,有的人选择自学大数据,也

  3. 20

    2019-11

    SOCKS5代理的特性和测试教程

    Socks5是一种代理,也就是先所有的交互数据都先经过另一台主机(网卡),这个过程中用户访问其他网络是都是使用的代理服务提供者的身份,采用socks协议的代理服务器就是SOCKS服务器,是一

  4. 25

    2019-06

    动态IP代理有哪些优势?

    首先要按照个人需求来挑选。市面上的软件再琳琅满目,也不外乎2个类型:按次收费和按时收费。假如仅仅是偶尔的工作需要,自然能够选按次收费的动态IP代理。切换一次收取一次的费用,对

  5. 16

    2019-07

    HTTP代理IP软件和如何使用代理IP软件

    衡量购买一个产品是否划算,最直接的办法就是核对支出和收入是否成正比。例如你购买一个商品花了100块,你通过这个商品盈利120,那你的购买就是划算的。如今互联网市场,HTTP代理IP多如牛

  6. 15

    2019-06

    怎么获取国内http代理ip?

    我们在上网时候常会看见“www.***.com”的网站域名,无论是看新闻或是闲逛贴吧、论坛,或是上网购物还是资源下载,以“www”开头的域名是最为常用的。但是这类网站用的协议是http协议,这是