Python实现网络图片抓取
案例分析
概述
Python在网络爬虫方面功能很强大,程序语言简单高效,下面编程实现一下如何抓取网络图片。本案例分为:单独图片抓取、全网图片抓取。分别给出实现代码,作为学习和技术交流。
Python基础环境准备
参见:https://blog.csdn.net/yan_dk/article/details/89528463
案例实现
单独图片抓取
import requestsurl='http://724.169pp.net/169mm/201904/141.2.jppg'resp = requests.get(url).content#print(resp)#下载图片with open('my.jpg','wb') as f:f.write(resp)
全网图片抓取
import requests
import os
from pyquery import PyQuery as pqurl='https://www.169tp.com/guoneimeinv/'
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36guoneimeinv/ tz.js logo.gif 1_061G54TJ0P.jpg 1_061515062KO6.jpg 1_06141601425K5.jpg 1_0613152F01P5.jpg 1_050G4194Y5a.jpg 1_05061336131V3.jpg 1_0506133354E04.jpg 1_05041232432964.jpg 1_05041230246021.jpg 1_0502143440W33.jpg 1_05021432411914.jpg'}
# resp=requests.get(url,headers=headers).content.decode('utf-8')
# 报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 423: invalid start byte
# 突破反扒,返回响应# print(resp)
# 方法-下载图片
def download_images(a_url,a_filename):''' 详情页面的图片请求,并保存在本地'''resp_dtl = requests.get(a_url, headers=headers).content.decode('gbk')doc = pq(resp_dtl)bigImgs = doc('.big_img p img').items()count=1# print(bigImgs)for bigImg in bigImgs:bigImgSrc=bigImg.attr("src")imgs_data=requests.get(bigImgSrc,headers=headers)file_name="图片/"+a_filenamesave_name=str(file_name)# 若图片目录文件不存在,则重建if not os.path.exists(save_name):os.makedirs(file_name)else:with open(save_name+'/{}.jpg'.format(count),'wb') as f:f.write(imgs_data.content)count+=1# 方法-取得图片并下载数据
def getPics(a_url):resp_data = requests.get(a_url, headers=headers).content.decode('gbk')doc = pq(resp_data)
# 通过类选择器获取数据picObj =doc(".pic").items()
# print(pic)for pic in picObj:# 通过属性获取内容picUrl=pic.attr("href")picName = pic.text()# print(picUrl)download_images(picUrl,picName)
# 主入口方法,调用抓取图片
getPics(url)
实现效果,抓取图片文件如下
Python实现网络图片抓取相关推荐
- python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?
原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...
- 独家 | 手把手教你用Python进行Web抓取(附代码)
作者:Kerry Parker 翻译:田晓宁 校对:丁楠雅 本文约2900字,建议阅读10分钟. 本教程以在Fast Track上收集百强公司的数据为例,教你抓取网页信息. 作为一名数据科学家,我在工 ...
- Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常
Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常 参考文章: (1)Python requests 多线程抓取 出现H ...
- python lxml使用_使用lxml和Python进行Web抓取的简介
python lxml使用 by Timber.io 由Timber.io 使用lxml和Python进行Web抓取的简介 (An Intro to Web Scraping with lxml an ...
- python抓取网页电话号码_利用正则表达式编写python 爬虫,抓取网页电话号码!...
利用正则表达式编写python 爬虫,抓取网页联系我们电话号码!这里以九奥科技(www.jiuaoo.com)为例,抓取'联系我们'里面的电话号码,并输出. #!/usrweilie/bin/pyth ...
- python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- 测试开发Python培训:抓取新浪微博抓取数据-技术篇
测试开发Python培训:抓取新浪微博抓取数据-技术篇 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的sele ...
- Python利用requests抓取页面源代码(基础)
Python利用requests抓取页面源代码(基础) Requests模块是一个用于网络访问的模块. 由于使用到的requests库为第三方库,需要事先对其进行安装 1.1安装requests (1 ...
最新文章
- 2、ACE-实用生活口语-介绍 Introductions
- 用 Docker 构建、运行、发布来一个 Spring Boot 应用
- 【译】为什么我们在 API 中使用 GraphQL
- 英特尔分拆McAfee:31亿美元将多数股权卖给投资公司TPG
- leetcode算法题--七进制数
- boost::histogram::axis::regular用法的测试程序
- 数据结构与算法-- 二叉树后续遍历序列校验
- P1396 营救(并查集+二分)
- 大厂程序员年薪_年薪25万一线大厂程序员,年薪10万三线城市大专讲师,怎么选...
- 调试错误:ValueError: Protocol message Feature has no quot;featurequot; field.
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_10_Thread类的常用方法_设置线程名称...
- 读EntityFramework.DynamicFilters源码_心得_示例演示02
- toString()和valueOf()重写的区别
- android 视频测试工具,安兔兔视频测试下载3.0 官方版-安卓盒子视频性能检测工具平板西西软件下载...
- 2020计算机一级考试wps分数,计算机一级WPS辅导:在WPS下实现用域真正分数输入技巧...
- exynos 4412 电源管理芯片PMIC 的配置及使用方法
- python运维都做些什么_系统运维是做什么的(python在实际工作中的应用)
- win10 更新1809版后彻底关闭系统自动更新的方法
- codeup27943 星号实心六边形
- 实战! excel常用函数中lookup的用法