下面是对“python抓取网页图片示例(python爬虫)”的完整攻略。
一、前提准备
在使用Python爬取网页图片之前,我们需要先做好以下准备工作:
-
安装Python环境:从Python官网下载安装包,然后按照安装向导进行安装即可。
-
安装第三方库requests:在终端或命令行窗口输入
pip install requests
命令即可安装。 -
学习HTTP协议知识:由于爬虫的本质就是模拟浏览器向服务器发送请求,因此需要了解HTTP协议的基本知识。
二、Python爬虫抓取网页图片的过程
1. 确定需要爬取的目标URL
通过Chrome/Firefox等浏览器打开目标网页,在页面上找到需要下载的图片,鼠标右击图片,然后选择“复制图片地址”,将图片的URL地址复制到剪贴板中。
例如,我们要下载网站 https://www.example.com 上的一张图片,其URL地址为 https://www.example.com/images/example.jpg 。
2. 发送HTTP GET请求
在Python中使用requests库发送HTTP GET请求,并获取目标URL对应的网页内容。可以使用下面的代码实现:
import requests
url = 'https://www.example.com/images/example.jpg'
response = requests.get(url)
3. 解析图片URL地址
从下载的网页内容中解析出图片的URL地址,例如:
import re
img_url_pattern = re.compile(r'http[s]?:\/\/[^\s]*\.(jpg|jpeg|png|gif|bmp)')
img_url = img_url_pattern.findall(response.text)[0]
以上代码使用了正则表达式匹配图片URL地址,可以匹配各种类型的图片扩展名。
4. 下载图片
使用requests库下载图片,并保存到本地文件中,例如:
img_response = requests.get(img_url)
with open('example.jpg', 'wb') as f:
f.write(img_response.content)
以上代码将下载的图片保存到example.jpg文件中。
三、示例说明
示例一:爬取百度首页的LOGO图片
import requests
import re
url = 'https://www.baidu.com/'
response = requests.get(url)
img_url_pattern = re.compile(r'".*?\/logo\/.*?\.(jpg|jpeg|png|gif|bmp)"')
img_url = 'https:' + img_url_pattern.findall(response.text)[0]
img_response = requests.get(img_url)
with open('baidu_logo.jpg', 'wb') as f:
f.write(img_response.content)
以上代码首先向百度首页发送HTTP GET请求,然后从返回的响应中解析出LOGO图片的URL地址,最后下载图片并保存到本地文件baidu_logo.jpg中。
示例二:爬取壁纸网站的图片
import requests
import re
url = 'https://wallhaven.cc/search?q=nature&categories=100&purity=100&sorting=random&order=desc'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
img_url_pattern = re.compile(r'http[s]?:\/\/[^\s]*\.(jpg|jpeg|png|gif|bmp)')
img_urls = img_url_pattern.findall(response.text)
for i, img_url in enumerate(img_urls):
img_response = requests.get(img_url)
with open(f'nature_{i}.jpg', 'wb') as f:
f.write(img_response.content)
以上代码向壁纸网站发送HTTP GET请求,并从返回的响应中解析出所有符合要求的图片URL地址,然后循环下载图片并保存到本地文件中,文件名格式为“nature_序号.jpg”,其中序号为当前图片在列表中的索引。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python抓取网页图片示例(python爬虫) - Python技术站