Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)

这篇具有很好参考价值的文章主要介绍了Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、爬取目标

本次爬取的目标是某网站4K高清小姐姐图片:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

二、实现效果

实现批量下载指定关键词的图片,存放到指定文件夹中:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

三、准备工作

Python:3.10

编辑器:PyCharm

第三方模块,自行安装:

pip install requests # 网页数据爬取
pip install lxml # 提取网页数据

四、代理IP

4.1 使用代理的好处?

爬虫使用代理IP的好处有以下几点:

  • 轮换IP地址:使用代理IP可以轮换IP地址,降低被封禁的风险,从而保持爬取的连续性和稳定性。
  • 提高采集速度:代理IP可以提供多个IP地址,使得爬虫能够同时进行多个线程使用,从而加快数据的采集速度。
  • 绕过反爬虫机制:许多网站采取了各种反爬虫机制,例如IP封禁、验证码、请求频率限制等。使用代理IP可以帮助爬虫绕过这些机制,保持正常的数据采集。
  • 保护个人隐私:使用代理IP可以帮助隐藏真实的IP地址,保护个人身份和隐私信息。

博主经常写爬虫代码使用的是巨量IP家的高匿名代理IP,每天有1000个免费IP:点击免费试用

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

4.2 获取免费代理

1、打开巨量IP官网:巨量IP官网

2、输入账号信息进行注册:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

3、这里需要进行实名认证,如果不会的可以看:个人注册实名教程:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

4、进入会员中心,点击领取今日免费IP:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

5、详细步骤看官方的教程文档:巨量HTTP—免费代理ip套餐领取教程,领取后如下图:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

6、点击产品管理》动态代理(包时),可以看到我们刚才领取到的免费IP信息:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

7、将自己电脑的IP添加为白名单能获取代理IP,点击授权信息:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

8、依次点击修改授权》快速添加》确定

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

9、添加完成后,点击生成提取链接:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

10、设置每次提取的数量,点击生成链接,并复制链接:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

11、将复制链接,复制到地址栏就可以看到我们获取到的代理IP了:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

4.3 获取代理

获取到图片链接后我们需要再次发送请求去下载图片,由于请求量一般会很大所以需要用到代理IP。上面我们已经手动获取到了代理IP,下面来看Python如何挂上代理IP发送请求:

1、通过爬虫去获取API接口的里面的代理IP(注意:下面代理URL,看4.2教程换成自己的API链接):

import requests
import time
import random


def get_ip():
    url = "这里放你自己的API链接"
    while 1:
        try:
            r = requests.get(url, timeout=10)
        except:
            continue

        ip = r.text.strip()
        if '请求过于频繁' in ip:
            print('IP请求频繁')
            time.sleep(1)
            continue
        break
    proxies = {
        'https': '%s' % ip
    }

    return proxies



if __name__ == '__main__':
    proxies = get_ip()
    print(proxies)

运行结果,可以看到返回了接口中的代理IP:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

2、接下来我们写爬虫代理的时候就可以挂上代理IP去发送请求了,只需要将proxies当成参数传给requests.get函数去请求其他网址:

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

五、代理实战

5.1 导入模块

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import time  # 防止爬取过快可以睡眠一秒
import os # 创建文件

5.2 设置翻页

首先我们来分析一下网站的翻页,一共有62页:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

第一页链接:

https://pic.netbian.com/4kmeinv/index.html

第二页链接:

https://pic.netbian.com/4kmeinv/index_2.html

第三页链接:

https://pic.netbian.com/4kmeinv/index_3.html

可以看出每页只有index后面从第二页开始依次加上_页码,所以用循环来构造所有网页链接:

if __name__ == '__main__':
    # 页码
    page_number = 1
    # 循环构建每页的链接
    for i in range(1,page_number+1):
        # 第一页固定,后面页数拼接
        if i ==1:
            url = 'https://pic.netbian.com/4kmeinv/index.html'
        else:
            url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'

5.3 获取图片链接

可以看到所有图片url都在 ul标签 > a标签 > img标签下:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

我们创建一个get_imgurl_list(url)函数传入网页链接获取 网页源码,用xpath定位到每个图片的链接:

def get_imgurl_list(url,imgurl_list):
    """获取图片链接"""
    # 请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 发送请求
    response = requests.get(url=url, headers=headers)
    # 获取网页源码
    html_str = response.text
    # 将html字符串转换为etree对象方便后面使用xpath进行解析
    html_data = etree.HTML(html_str)
    # 利用xpath取到所有的li标签
    li_list = html_data.xpath("//ul[@class='clearfix']/li")
    # 打印一下li标签个数看是否和一页的电影个数对得上
    print(len(li_list))  # 输出20,没有问题
    for li in li_list:
        imgurl = li.xpath(".//a/img/@src")[0]
        # 拼接url
        imgurl = 'https://pic.netbian.com' +imgurl
        print(imgurl)
        # 写入列表
        imgurl_list.append(imgurl)

运行结果:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

点开一个图片链接看看:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

OK没问题!!!

5.4 下载图片

图片链接有了,代理IP也有了,下面我们就可以下载图片。定义一个get_down_img(img_url_list)函数,传入图片链接列表,然后遍历列表,每下载一个图片切换一次代理,将所有图片下载到指定文件夹:

def get_down_img(imgurl_list):
    # 在当前路径下生成存储图片的文件夹
    os.mkdir("小姐姐")
    # 定义图片编号
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
        # 调用get_ip函数,获取代理IP
        proxies = get_ip()
        # 每次发送请求换代理IP,获取图片,防止被封
        img_data = requests.get(url=img_url, headers=headers, proxies=proxies).content
        # 拼接图片存放地址和名字
        img_path = './小姐姐/' + str(n) + '.jpg'
        # 将图片写入指定位置
        with open(img_path, 'wb') as f:
            f.write(img_data)
        # 图片编号递增
        n = n + 1

5.5 调用主函数

这里我们可以设置需要爬取的页码:

if __name__ == '__main__':
    # 1. 设置获取的页数
    page_number = 63
    imgurl_list = [] # 用于存储所有的图片链接
    # 2. 循环构建每页的链接
    for i in range(1,page_number+1):
        # 第一页固定,后面页数拼接
        if i ==1:
            url = 'https://pic.netbian.com/4kmeinv/index.html'
        else:
            url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'
        # 3. 获取图片链接
        get_imgurl_list(url,imgurl_list)
    # 4. 下载图片
    get_down_img(imgurl_list)

5.6 完整源码

注意:下面代理URL,看4.2教程换成自己的API链接:

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import time  # 防止爬取过快可以睡眠一秒
import os


def get_ip():
    url = "这里放你自己的API链接"
    while 1:
        try:
            r = requests.get(url, timeout=10)
        except:
            continue

        ip = r.text.strip()
        if '请求过于频繁' in ip:
            print('IP请求频繁')
            time.sleep(1)
            continue
        break
    proxies = {
        'https': '%s' % ip
    }

    return proxies


def get_imgurl_list(url,imgurl_list):
    """获取图片链接"""
    # 请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 发送请求
    response = requests.get(url=url, headers=headers)
    # 获取网页源码
    html_str = response.text
    # 将html字符串转换为etree对象方便后面使用xpath进行解析
    html_data = etree.HTML(html_str)
    # 利用xpath取到所有的li标签
    li_list = html_data.xpath("//ul[@class='clearfix']/li")
    # 打印一下li标签个数看是否和一页的电影个数对得上
    print(len(li_list))  # 输出20,没有问题
    for li in li_list:
        imgurl = li.xpath(".//a/img/@src")[0]
        # 拼接url
        imgurl = 'https://pic.netbian.com' +imgurl
        print(imgurl)
        # 写入列表
        imgurl_list.append(imgurl)


def get_down_img(imgurl_list):
    # 在当前路径下生成存储图片的文件夹
    os.mkdir("小姐姐")
    # 定义图片编号
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
        # 调用get_ip函数,获取代理IP
        proxies = get_ip()
        # 每次发送请求换代理IP,获取图片,防止被封
        img_data = requests.get(url=img_url, headers=headers, proxies=proxies).content
        # 拼接图片存放地址和名字
        img_path = './小姐姐/' + str(n) + '.jpg'
        # 将图片写入指定位置
        with open(img_path, 'wb') as f:
            f.write(img_data)
        # 图片编号递增
        n = n + 1

if __name__ == '__main__':
    # 1. 设置获取的页数
    page_number = 50
    imgurl_list = [] # 用于存储所有的图片链接
    # 2. 循环构建每页的链接
    for i in range(1,page_number+1):
        # 第一页固定,后面页数拼接
        if i ==1:
            url = 'https://pic.netbian.com/4kmeinv/index.html'
        else:
            url = f'https://pic.netbian.com/4kmeinv/index_{i}.html'
        # 3. 获取图片链接
        get_imgurl_list(url,imgurl_list)
    # 4. 下载图片
    get_down_img(imgurl_list)

运行结果:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

下载成功了没有报错,代理IP的质量还是不错的!!!

5.7 代理IP不够用怎么办?

每天免费的1000个代理IP不够用怎么办?经常写爬虫代码对于代理IP需求量很大的小伙伴推荐使用巨量IP家的不限量代理IP套餐,IP有效时长:30-60秒就够用了:点击购买

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

这里默认有5个代理池子,单次最高提取50,提取1秒一次;如果单次提取1个,则可以实现1秒提取50次。如果觉得单次50个代理IP还不够的可以增加IP池子。

我算了一下默认的五个池子,1秒可以提取50个代理IP,一天86400秒,也就是说一天可以提取 50x86400=4,320,000个代理IP,好家伙于是博主我果断给自己安排了一个包年套餐,别提有多爽了:

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码),《极客日报》,Python爬虫实战100例,python,爬虫,爬虫实战,人工智能,计算机视觉,自然语言处理,图像处理,原力计划

六、总结

代理IP对于爬虫是密不可分的,代理IP可以帮助爬虫隐藏真实IP地址,有需要代理IP的小伙伴可以试试巨量家的代理IP:巨量IP官网文章来源地址https://www.toymoban.com/news/detail-728765.html

到了这里,关于Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】爬虫代理IP的使用+建立代理IP池

    目录 前言 一、代理IP 1. 代理IP的获取 2. 代理IP的验证 3. 代理IP的使用 二、建立代理IP池 1. 代理IP池的建立 2. 动态维护代理IP池 三、完整代码 总结 前言 在进行网络爬虫开发时,我们很容易遭遇反爬虫机制的阻碍。为了规避反爬虫机制,我们可以使用代理IP。代理IP是指通过代

    2024年02月22日
    浏览(49)
  • Python 爬虫使用代理 IP 的正确方法

    代理 IP 是爬虫中非常常用的方法,可以避免因为频繁请求而被封禁。下面是 Python 爬虫使用代理 IP 的正确方法: 1. 选择可靠的代理 IP 供应商,购买或者免费使用代理 IP 列表。 2. 在爬虫中使用第三方库 requests ,并在 requests.get() 或 requests.post() 请求时添加代理 IP 参数,例如:

    2024年02月11日
    浏览(111)
  • 代理ip的使用方法——Python爬虫

    本文内容:代理ip使用原理,如何在自己的爬虫里设置代理ip,如何知道代理ip有没有生效,没生效的话是哪里出了问题,个人使用的代理ip(付费)。 目录 代理ip原理       输入网址后发生了什么呢?       代理ip做了什么呢?       为什么要用代理呢?  爬虫代码中使用代

    2024年02月05日
    浏览(56)
  • Python 网页爬虫原理及代理 IP 使用

    目录 前言 一、Python 网页爬虫原理 二、Python 网页爬虫案例 步骤1:分析网页 步骤2:提取数据 步骤3:存储数据 三、使用代理 IP 四、总结 前言 随着互联网的发展,网络上的信息量变得越来越庞大。对于数据分析人员和研究人员来说,获取这些数据是一项重要的任务。Python

    2024年02月09日
    浏览(55)
  • Python爬虫教程:如何使用Python获取免费代理IP

    部分数据来源: ChatGPT 引言         在爬取数据时,为了避免被反爬机制封锁,我们需要使用代理IP来进行隐蔽访问。有些网站提供免费的代理IP,我们可以使用Python来自动化获取这些代理IP,并进行验证筛选出可用的代理IP。 准备工作         在开始之前,需要安装

    2024年02月07日
    浏览(49)
  • 【实战】Python爬虫之代理使用详解

    在Python爬虫中,代理的使用非常常见。代理的主要作用是隐藏客户端的真实IP地址,从而实现更高的网络访问速度和更好的访问隐私保护。下面我们将通过Python爬虫的实例,带你详细了解Python爬虫中代理的使用方法。 目录 ## 1. 代理原理和作用 ## 2. Python爬虫代理的使用方式

    2024年02月09日
    浏览(97)
  • ins视频批量下载,instagram批量爬取视频信息【爬虫实战课1】

    Instagram 是目前最热门的社交媒体平台之一,拥有大量优质的视频内容。但是要逐一下载这些视频往往非常耗时。在这篇文章中,我们将介绍如何使用 Python 编写一个脚本,来实现 Instagram 视频的批量下载和信息爬取。 我们使用selenium获取目标用户的 HTML 源代码,并将其保存在本地

    2024年04月23日
    浏览(57)
  • Python3 网络爬虫开发实战 第2版 (崔庆才) PDF 高清

    《Python 3 网络爬虫开发实战(第二版)》是由崔庆才所著的一本关于使用 Python 进行网络爬虫开发的书籍。 网络爬虫基础:介绍网络爬虫的基本概念、工作原理和常见的应用场景。 HTTP 协议与 Scrapy 框架:解释 HTTP 协议的基本知识,以及如何使用 Scrapy 框架来构建和管理爬虫项

    2024年04月09日
    浏览(78)
  • 【100天精通python】Day43:python网络爬虫开发_爬虫基础(urlib库、Beautiful Soup库、使用代理+实战代码)

    目录 1 urlib 库 2 Beautiful Soup库 3 使用代理 3.1 代理种类 HTTP、HTTPS 和 SOCKS5

    2024年02月12日
    浏览(54)
  • Python爬虫系列(二)——Python爬虫批量下载百度图片

    1. 前言 先贴代码 如果要使用上述程序的话,需要修改两个地方 : self.directory 这是本地存储地址,修改为自己电脑的地址,另外,**{}**不要删 spider.json_count = 10 这是下载的图像组数,一组有30张图像,10组就是三百张,根据需求下载 也可以去gitee仓库直接下载程序。 关于 py

    2023年04月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包