动态ip

>

代理ip软件

>

换ip软件

>

HTTP代理

>
Socks5代理
黑核动态ip代理
您的位置: 首页 > 新闻资讯 > 正文

爬虫自动获取并使用代理ip

发布时间:2019-05-17 09:38:45 来源:黑核动态ip代理

分享到

  当同一ip短时间内多次链接同一网站,很可能导致ip被封,所以需要利用代理ip防止封禁。代理ip可以通过百度很容易的获取 比如黑核动态ip代理,但是,很明显我们用爬虫的人,不是会一个个自己复制粘贴的人,所以自然想到用爬虫解决问题。

  主要思路

  1.从代理网站爬取IP地址及端口号并存储

  2.验证ip能否使用

  3.格式化ip地址

  4.在requests中使用代理ip爬网站

  具体实现

  1.爬取代理IP

  这一步很简单就直接上代码了

url = 'http://www.xicidaili.com/wt'def get_ip_list(url, headers):    """ 从代理网站上获取代理"""
    ip_list = []
    page = requests.get(url, headers=headers)
    soup = BeautifulSoup(page.text, 'lxml')
    ul_list = soup.find_all('tr', limit=20)
    print(len(ul_list))    for i in range(2, len(ul_list)):
        line = ul_list[i].find_all('td')
        ip = line[1].text
        port = line[2].text
        address = ip + ':' + port
        ip_list.append(address)    return ip_list

  最终获得的是是这样的ip:port列表

爬虫自动获取并使用代理ip

  2.验证ip可用

  验证可用有两种思路:

  - 在格式化好的用代理IP访问指定网站,如果返回状态为200,表示这个代理是可以使用的

  - 在ip_list基础上使用telnet来验证

  直接访问式验证

import requests 
#假设此时有一已经格式化好的ip代理地址proxiesproxies = {
    http: 'http://114.99.7.122:8752'
    https: 'https://114.99.7.122:8752'}
headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'}
url = 'http://www.whatismyip.com.tw/'try:
    page = requests.get(url, headers=headers, proxies=proxies)    except:
        print('失败')    else:
        print('成功')

  这个方法很容易想到,但是受限于代理的延时,很慢,于是有了下面一个快一点的使用telnet来验证

  方法:

#这里假设有ip_list中某一iphd, port = ip.split(':')try:
    telnetlib.Telnet(hd, port=port, timeout=20)except:    print '失败'else:    print '成功'

  3.格式化

  在Requests中使用代理爬取的格式是

import requests
requests.get(url, headers=headers, proxies=proxies)

  其中proxies是一个字典其格式为:

  对每个ip都有

proxies = {
    http: 'http://114.99.7.122:8752'
    https: 'https://114.99.7.122:8752'}

  这里注意:

  对于http和https两个元素,这里的http和https

  代表的不是代理网站上在ip后面接的类型

  代表的**是**requests访问的网站的传输类型是http还是https

  所以,如果,你爬的网站是http类型的你就用http,如果是https类型的你就用https,当然相应的在代理网站上爬的时候也要分别爬http或https的ip

  当然为了省事,我们都加上,反正会验证能不能用,这样有更好的通用性。

  具体格式化代码为:

def get_proxy(aip):    """构建格式化的单个proxies"""
    proxy_ip = 'http://' + aip
    proxy_ips = 'https://' + aip
    proxy = {'https': proxy_ips, 'http': proxy_ip}    return proxy

  4.使用代理建立爬虫

  由于本身就是为了学习,所以建立爬虫爬取的是显示ip的网站http://www.whatismyip.com.tw/

  这个网站会显示你的ip地址,从而可以很直观确认我们的代理是否成功了

  代码是很简单的爬虫就直接上代码了:

def print_ip(proxies):    """利用http://www.whatismyip.com.tw/显示访问的ip"""
    cookies = {        'sc_is_visitor_unique': 'rx6392240.1508897278.298AFF0AE2624F7BC72BADF517B67AEE.2.2.2.2.2.2.1.1.1',
    }

    headers = {        'Accept-Encoding': 'gzip, deflate',        'Accept-Language': 'zh-CN,zh;q=0.8',        'Upgrade-Insecure-Requests': '1',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',        'Cache-Control': 'max-age=0',        'Connection': 'keep-alive',
    }   
    url = 'http://www.whatismyip.com.tw/'    try:
        page = requests.get(url, headers=headers, proxies=proxies)    except:
        print(str(proxies) + 'is wrong')    else:
        soup = BeautifulSoup(page.text, 'lxml')
        my_ip = soup.find('b').text
        print('成功连接' + my_ip)

  可以看到这里用的是第一种方式确认ip的可用

  如果运行成功有如下显示:

爬虫自动获取并使用代理ip


相关资讯

爬虫技术工程师为什么离不开ip代理

说到爬虫,自然离不开爬虫代理地址。爬虫是一门随着互联网大数据而应运而生的产物,它主要是为了在海量的网络数据中采集分析有效的数据而诞生的一门技术。无需多言,爬虫技

来源:黑核混拨ip加速器网

2018-12-28 15:24:23

如何使用ip代理保证爬虫能正常工作?

在实际的爬虫抓取的过程中,由于会存在恶意采集或者恶意攻击的情况,很多网站都会设置相应的防爬取机制,通常防爬程序都是通过ip来识别机器人用户的,因此充足可用的ip

来源:黑核混拨ip加速器网

2018-12-28 17:22:15

为什么网络爬虫需要大量IP 有什么好用的IP切换软件

在爬虫的过程中,我们经常会遇见很多网站采取了防爬取技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力,所以你一直用同一个代理IP

来源:黑核混拨ip加速器网

2019-01-02 18:00:27

爬虫程序为什么都离不开代理ip软件

c#爬虫程序,现在做爬虫抓取数据用什么程序最好,之前在知乎上有一位用户,只为证明c#是爬虫最好的程序而进行了大量的测试。那么写爬虫抓取数据一定会用到代理ip,黑

来源:黑核混拨ip代理

2019-01-10 10:55:33

为什么说好的代理ip软件能提高爬虫效率

c#爬虫,现在做业务越来越难,市面上的代理ip商家五花八门,试过很多代理ip的人会知道对业务效果并不理想,为什么黑核混拨ip代理软件的代理ip质量很高,下面我来

来源:黑核混拨ip代理

2019-01-10 11:07:11

爬虫程序为什么要使用代理ip软件

c#爬虫和python要用什么代理ip?我用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python

来源:黑核混拨ip代理

2019-01-10 11:19:45

哪里有好用又便宜的爬虫代理ip软件

在互联网世界中,用户每一次点击和访问,都不仅仅只是一次点击、访问,它们将汇聚成大片数据,成为你和他人网络畅游的路径。这是爬虫的作用,采集抓取网站信息,帮助搜索引

来源:黑核混拨ip代理

2019-01-10 15:54:51

换ip软件帮您解决ip被封烦恼!

换ip软件帮您解决ip被封烦恼!我想做互联网工作的基本上都需要换下ip吧,很多时候我们做推广经常被封账号,特别是同一个IP自问自答马上封你没商量,但是这些推广也

来源:黑核混拨IP网

2018-12-25 15:52:02

常见几种自动换IP方式对比

现在很多工作都需要换IP,本文介绍几种常见的自动换IP方式的对比,换IP方式包含路由器换IP,拨号换IP,vpn换IP,3G/4G手机上网卡换IP,代理服务器换

来源:黑核混拨ip代理

2019-03-28 17:30:28

Python3实现并发检验代理池地址的方法

本文实例讲述了Python3实现并发检验代理池地址的方法。分享给大家供大家参考,具体如下:#encoding=utf-8#author: walker

来源:黑核动态ip代理

2019-05-06 11:11:09

Python爬虫如何获取大量的ip预防被封

python爬虫抓取和分析京东商城评价互联网购物现已成为当下最流行的购物方式,很多用户在互联网购买商品后,会对商品包装、质量,商家服务做出客观评价。商品评价的好

来源:黑核混拨ip代理

2019-01-19 10:51:05

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
客服电话
13318873961