python爬虫 爬取网页图片
想要爬取指定网页中的图片主要需要以下三个步骤:
(1)指定网站链接,抓取该网站的源代码(如果使用google浏览器就是按下鼠标右键 -> Inspect-> Elements 中的 html 内容)
(2)根据你要抓取的内容设置正则表达式以匹配要抓取的内容
(3)设置循环列表,重复抓取和保存内容
以下介绍了两种方法实现抓取指定网页中图片
(1)方法一:使用正则表达式过滤抓到的 html 内容字符串
兄弟们 这个代码开有没有知道咋添加的 我没添加上 直接给大家图片和代码了 一下是图片上的代码 方便大家复制粘贴
# 第一个简单的爬取图片的程序
import urllib.request # python自带的爬操作url的库
import re # 正则表达式
# 该方法传入url,返回url的html的源代码
def getHtmlCode(url):
# 以下几行注释的代码在本程序中有加没加效果一样,但是为了隐藏自己避免被反爬虫可以假如这个伪装的头部请求
headers = {
'User-Agent': 'Mozilla/5.0(linux; android 6.0; Nexus 5 Build/MRA58N) \
AppleWebKit/537.36(KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'
}
# 将headers头部添加到url,模拟浏览器访问
url = urllib.request.Request(url, headers=headers)
# 将url页面的源代码保存成字符串
page = urllib.request.urlopen(url).read()
# 字符串转码
page = page.decode('UTF-8')
return page
# 该方法传入html的源代码,通过截取其中的img标签,将图片保存到本机
def getImage(page):
# [^\s]*? 表示最小匹配, 两个括号表示列表中有两个元组
# imageList = re.findall(r'(https:[^\s]*?(png))"', page)
imageList = re.findall(r'(https:[^\s]*?(jpg|png|gif))"', page)
x = 0
# 循环列表
for imageUrl in imageList:
try:
print('正在下载: %s' % imageUrl[0])
# 这个image文件夹需要先创建好才能看到结果
image_save_path = './image/%d.png' % x
# 下载图片并且保存到指定文件夹中
urllib.request.urlretrieve(imageUrl[0], image_save_path)
x = x + 1
except:
continue
pass
if __name__ == '__main__':
# 指定要爬取的网站
url = "https://www.cnblogs.com/ttweixiao-IT-program/p/13324826.html"
# 得到该网站的源代码
page = getHtmlCode(url)
# 爬取该网站的图片并且保存
getImage(page)
# print(page)
注意,代码中需要修改的就是imageList = re.findall(r'(https:[^\s]*?(jpg|png|gif))"', page) 这一块内容,如何设计正则表达式需要根据你想要抓取的内容设置。我的设计来源如下 你们可以参考一下
可以看到,因为这个网页上的图片都是 png 格式,所以写成imageList = re.findall(r'(https:[^\s]*?(png))"', page)也是可以的。
(2)方法二:使用 BeautifulSoup 库解析 html 网页
以下是图中的代码 方便大家复制粘贴
from bs4 import BeautifulSoup # BeautifulSoup是python处理HTML/XML的函数库,是Python内置的网页分析工具
import urllib # python自带的爬操作url的库
# 该方法传入url,返回url的html的源代码
def getHtmlCode(url):
# 以下几行注释的代码在本程序中有加没加效果一样,但是为了隐藏自己避免被反爬虫可以假如这个伪装的头部请求
headers = {
'User-Agent': 'Mozilla/5.0(Linux; Android 6.0; Nexus 5 Build/MRA58N) \
AppleWebKit/537.36(KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36'
}
# 将headers头部添加到url,模拟浏览器访问
url = urllib.request.Request(url, headers=headers)
# 将url页面的源代码保存成字符串
page = urllib.request.urlopen(url).read()
# 字符串转码
page = page.decode('UTF-8')
return page
# 该方法传入html的源代码,通过截取其中的img标签,将图片保存到本机
def getImage(page):
# 按照html格式解析页面
soup = BeautifulSoup(page, 'html.parser')
# 格式化输出DOM树的内容
print(soup.prettify())
# 返回所有包含img标签的列表,因为在Html文件中图片的插入呈现形式是<img src="..." alt=".." />
imgList = soup.find_all('img')
x = 0
# 循环找到的图片列表,注意,这里手动设置从第2张图片开始,是因为我debug看到了第一张图片不是我想要的图片
for imgUrl in imgList[1:]:
print('正在下载: %s ' % imgUrl.get('src'))
# 得到scr的内容,这里返回的就是Url字符串链接,如'https://img2020.cnblogs.com/blog/1703588/202007/1703588-20200716203143042-623499171.png'
image_url = imgUrl.get('src')
# 这个image文件夹需要先创建好才能看到结果
image_save_path = './image/%d.png' % x
# 下载图片并且保存到指定文件夹中
urllib.request.urlretrieve(image_url, image_save_path)
x = x + 1
if __name__ == '__main__':
# 指定要爬取的网站
url = 'https://www.cnblogs.com/ttweixiao-IT-program/p/13324826.html'
# 得到该网站的源代码
page = getHtmlCode(url)
# 爬取该网站的图片并且保存
getImage(page)
这两种方法各有利弊,我觉得可以灵活结合使用这两种方法,比如先使用方法2中指定标签的方法缩小要寻找的内容范围,然后再使用正则表达式匹配想要的内容,这样做起来更加简洁明了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
此文章最终解释权归政胤工作室所有 盗版必究!
希望大家多多支持 刚刚入行 希望大家多多提意见
python爬虫 爬取网页图片相关推荐
- 上手快!!福利局!新手如何使用python爬虫爬取网页图片(使用正则进行数据解析)当然这个新手是我自己
作为一个python新入门小白,突然就想发个博客,一方面为了记录学习历程,一方面能分享给新入门的同学经验,更多的是想和大家一起学习和交流.以下是我以小白的角度分享的爬虫的相关知识和一个简单的爬取网页图 ...
- python爬虫爬取网页图片_Python爬虫:爬取网页图片
先分析查找要爬取图片的路径 在浏览器F12 审查元素 整体实现代码 # -- coding:UTF-8 -- import requests from bs4 import BeautifulSoup ...
- python爬虫爬取网页图片_Python爬虫实现抓取网页图片
在逛贴吧的时候看见贴吧里面漂亮的图片,或有漂亮妹纸的图片,是不是想保存下来? 但是有的网页的图片比较多,一个个保存下来比较麻烦. 最近在学Python,所以用Python来抓取网页内容还是比较方便的: ...
- python爬虫,爬取下载图片
python爬虫,爬取下载图片 分别引入以下三个包 from urllib.request import urlopen from bs4 import BeautifulSoup import re ...
- node:爬虫爬取网页图片 1
代码地址如下: http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图 ...
- Python爬虫爬取网页数据并存储(一)
Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...
- python爬虫爬取网页新闻标题-看完保证你会
python爬虫爬取网页新闻标题方法 1.首先使用浏览自带的工具--检查,查找网页新闻标题对应的元素位置,这里查到的新闻标题是在 h3 标签中 2.然后使用编辑器编写python代码 2.1方法一: ...
- 用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)
参考文章:https://www.cnblogs.com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只 ...
- python唯美壁纸_用python爬虫爬取网页壁纸图片(彼岸桌面网唯美图片)
参考文章:https://www..com/franklv/p/6829387.html 今天想给我的电脑里面多加点壁纸,但是嫌弃一个个保存太慢,于是想着写个爬虫直接批量爬取,因为爬虫只是很久之前学过 ...
- Python爬虫爬取相关图片
简要的实现实现Python爬虫爬取百度贴吧页面上的图片,下面的网页就是本篇博客所要爬的网页,当然看到的只是其中的一部分图片,是所要爬取的页面, 而下图则是最终的爬取的图片: 接下来就简要的讲讲爬取的整 ...
最新文章
- sklearn库安装_没有依赖库也能跑机器学习模型!推荐一个强大工具m2cgen
- sdcard不可执行.
- 利用eigen库简单实现矩阵功能
- java list多字段排序_java中list通过多条件排序
- 仿LordPE获取PE结构
- 2014年英语一作文partB漫画作文
- 怎样查看Jdk是32位还是64位
- String 字符串
- SpringBoot启动类自动包扫描 三种方式
- rc.local文件开机不执行
- FEMA和地×××府运用GIS对抗灾害
- 2021下半年最新编程培训机构排名出炉!
- VBS调用ping检测ip连通情况
- JSP详细DAO设计模式及应用(!)
- 需求文档怎么写?这里有一套思维框架
- 【Java课堂】接口详解
- MEM/MBA数学强化(02)实数运算与性质
- 【剑指 Offer_15】二进制中1的个数_PythonJava_逐位相与解法
- 实体鉴别GB/T 15843研究(合集)
- c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...
热门文章
- 数字逻辑练习题(四)用卡诺图化简下面的函数为最简“与-或”式
- 2019大数据挑战赛
- 英语句式参考纯享版 - 主语从句 - 表语从句
- 由于您的系统没有安装html help,教你解决Chrome浏览器未安装flash控件方法
- Excel中Alt快捷键的用法
- arduino——ATtiny85 SSD1306 + DHT
- python notebook两个窗口_JupyterNotebook 输出窗口的显示效果调整实现
- Coherence缓存学习
- 学习Struts2框架笔记-第1天
- 思科模拟器服务器怎么显示字样,思科模拟器服务器怎么设置网关