爬虫学习(四)——使用代理IP

文章目录

  • 一、为什么使用代理IP?
  • 二、使用步骤
    • 1.查询代理IP
    • 2.程序测试
      • 首先ip代理程序如下:
      • 使用ip代理进行网页访问
    • 3.遇到的问题
      • 1)http协议问题
      • 2)网络连接问题


一、为什么使用代理IP?

使用自己的IP频繁访问一个网站,总会让自己觉得不安,并且该网站的管理人员也不希望看到这样频繁的同一个的IP访问,因此为了使我们双方和谐一点,通常第一步的做法就是在你的程序中加入延迟time.sleep(5)。但是正常来说,同一个ip不能短时间内重复访问同一网站,因此我们就想把自己伪装成别的ip,因此使用代理ip并且加上延时,总之注意爬取的规范性,不然给服务器带来太大压力,服务器会直接把你block,禁止你的访问的。

二、使用步骤

1.查询代理IP

一般百度“代理ip”即可,代理ip的网站一般都会提供一些免费的IP,这样对于学习者来说已经足够了,当然希望更加稳定便捷的代理用于商业用途的,可以选择收费代理,这里以这个网站举例:
http://www.66ip.cn/

爬虫学习(四)——使用代理IP_第1张图片
我们随便选择其中一个:125.37.179.143:8080,注意不要忘记端口号哦。
ok,现在选择一个网站来查看自己的本机IP,这个网站尽量可读性高一些,推荐这个网站:
http://www.whatismyip.com.tw/
爬虫学习(四)——使用代理IP_第2张图片

2.程序测试

包括两部分程序,第一个是ip代理,第二个是使用ip代理进行网页访问

首先ip代理程序如下:

(1)调用request.ProxyHandler(proxy),proxy参数为一个字典,这个字典就是我们所使用的代理ip:{‘http’: ‘125.37.179.143:8080’}

(2)创建Opener(类似于urlopen,这个代开方式是我们自己定制的)
request.build_opener(proxy_support)

(3)加入用户代理User Angent,这一步是为了稳定访问,不管是不是使用代理ip都需要

(3)安装Opener
request.install_opener(opener)

使用install_opener方法之后,会将程序默认的urlopen方法替换掉。也就是说,如果使用install_opener之后,在该文件中,再次调用urlopen会使用自己创建好的opener。如果不想替换掉,只是想临时使用一下,可以使用opener.open(url),这样就不会对程序默认的urlopen有影响。

from urllib import request

def ip_proxy():
    # 这是代理IP
    proxy = {'http': '125.37.179.143:8080'}
    # 创建ProxyHandler
    proxy_support = request.ProxyHandler(proxy)
    # 创建Opener
    opener = request.build_opener(proxy_support)
    # 添加User Angent
    opener.addheaders = [('User-Agent','User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36')]
    # 安装OPener
    request.install_opener(opener)

使用ip代理进行网页访问

这里只是省略了添加用户代理部分,其他与爬取豆瓣电影信息那篇博客一样,代码如下:

def OPener_URL(url):
    try:
        response = request.urlopen(url)
        # 读取相应信息并解码
        html = response.read().decode("utf-8")
        print(html)
    except urllib.error.URLError as e:
        if hasattr(e,"code"):
            print(e.code)
        if hasattr(e,"reason"):
            print(e.reason)

从结果可以看出,我们已经把ip伪装好了
爬虫学习(四)——使用代理IP_第3张图片

爬虫学习(四)——使用代理IP_第4张图片

3.遇到的问题

1)http协议问题

首先极其不稳定,访问http协议的网站总是超时,或者被远程拒绝,可以尝试科学上网。

另外注意访问网站要写成

url = 'http://www.whatismyip.com.tw'

而不要复制粘贴成这样

url = 'http://www.whatismyip.com.tw/'

多这一个‘/’是非常的坑啊

还需要继续总结学习,待续。。。

2)网络连接问题

尽量不要使用校园网,可以使用自己的宽带,或者连接手机开启的热点,成功率会高一些

你可能感兴趣的:(爬虫学习,python,爬虫,ipv)