Python爬虫实战-使用代理IP批量下载图片(附上完整源码)

先看最终效果:

使用代理IP爬取,实现批量下载关键词图片并存放到指定文件夹

8个步骤,就能批量获取小姐姐照片,这..这也太棒了!

话不多说,直接上方法。

步骤一 准备相关工具

Python:3.10

编辑器:PyCharm

第三方模块,自行安装:

步骤二 获取代理IP

网上关于代理IP的网站有很多,找一个能免费测试的代理IP服务商,试试好不好用再说。这里我选择的是才上线的代理IP供应商【一连IP】,它们涵盖直连代理和隧道代理服务,覆盖HTTP、HTTPS、SOCKS5三种代理协议,现在直连和隧道代理都能免费使用,如何领取可以前往公众号「一连IP」查看。

一连IP官网:yilian.top/

本次一连IP上线,为关注我的小伙伴准备了宠粉见面礼,帮助大家0门槛上手:

  • 3天不限量使用直连代理IP
  • 不限时使用1万数量的直连代理IP
  • 3天不限量使用每次请求换IP的隧道代理IP
  • 3天不限量固定时长换IP的隧道代理IP

注:每个账户每种见面礼限领一次

步骤三 Python获取代理IP

这次爬取,我选择的隧道代理IP

领取成功后点击「控制台」---「产品管理」-「隧道代理」-「控制台」---「查看」

我们用Python获取代理IP,注意将代码中的账号、密码、地址、端口替换为账号信息:

步骤四 导入模块

步骤五 设置翻页

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

1.第一页链接

pic.netbian.com/4kmeinv/ind...

2.第二页链接

pic.netbian.com/4kmeinv/ind...

3.第三页链接

pic.netbian.com/4kmeinv/ind...

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

if name == 'main':

页码

page_number = 1

循环构建每页的链接

for i in range(1,page_number+1):

第一页固定,后面页数拼接

if i ==1:

url = 'pic.netbian.com/4kmeinv/ind...'

else:

url = f'pic.netbian.com/4kmeinv/ind...'

步骤六 获取图片链接

1.可以看到所有图片URL都在UI标签>a标签》img标签下:


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

3.运行结果:

4.点开一个图片链接看看:

完美!接着往下看!

步骤七 下载图片

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

步骤八 调用主函数

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

注意将get_ip()函数代码中的账号、密码、地址 、端口替换为刚才客服给的账号信息

相关推荐
泯泷1 小时前
手搓JSVMM第 8 篇:函数调用:参数、返回值与调用帧
前端·javascript·前端框架
Sherotree1 小时前
Google Antigravity——Agent 被提到主界面
前端·ide·后端·edge浏览器
2601_962056232 小时前
Spring Boot 入门 与 无法解析符号 springframework 的解决
java·spring boot·后端
里欧跑得慢2 小时前
Flutter 像素级还原:设计稿到代码的视觉无损转换技巧
前端·css·flutter·web
威联通网络存储2 小时前
TS-h3087XU-RP 汽车零部件质检追溯部署
python·汽车
里欧跑得慢2 小时前
Flutter 三方库 function_tree — 鸿蒙应用开发中的动态数学公式解析与计算神器,实现鸿蒙深度适配下的复杂函数逻辑运行时求值实战(适配鸿蒙 HarmonyOS Next ohos)
android·前端·安全·flutter·华为·harmonyos
你驴我2 小时前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
后端·python
IT毕设实战小研2 小时前
基于安卓的空气质量查询系统
android·大数据·vue.js·爬虫·python·django·课程设计
苏灿烤鱼3 小时前
没有机密文件,也没有付费数据,在浏览器里造一颗"间谍卫星"
前端·javascript·github
学长毕业设计3 小时前
基于SpringBoot的瑜伽馆网站的设计与实现(源码+文档+讲解视频)
java·spring boot·后端