标题:Python实现简单的获取图片爬虫功能示例攻略
背景介绍
随着互联网的发展,人们需要从互联网上获取各种信息。其中获取图片是一个非常常见的需求。本文将介绍如何使用Python实现简单的获取图片爬虫功能。这种爬虫可以从指定的网站上获取所有的图片,并将这些图片下载到本地。
环境准备
本文所使用的开发环境为Python 3.x。请确保您的计算机上已经安装了Python 3.x版本。另外,您需要安装下面这些Python库:
* requests:用于发送HTTP请求
* BeautifulSoup4:用于解析HTML标签
您可以使用Python库管理工具pip安装这些库。在终端窗口中,执行以下命令进行安装:
pip install requests
pip install beautifulsoup4
实现过程
- 发送HTTP请求获取网页内容
使用requests库发送HTTP请求,获取指定网站的HTML页面内容。示例代码如下:
import requests
url = "http://example.com/"
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)
if response.status_code == 200:
html_doc = response.text
else:
print("Error: ", response.status_code)
其中,url参数是需要获取数据的网站地址;headers参数是指定的HTTP请求头部信息,用于模拟浏览器发送请求。
- 解析HTML标签获取图片链接地址
使用BeautifulSoup4库解析HTML页面内容,获取页面中所有的图片链接地址。示例代码如下:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
image_urls = []
for img in soup.find_all('img'):
image_urls.append(img.get('src'))
print(image_urls)
其中,html_doc是前面步骤获取的HTML页面内容;'html.parser'参数是指定使用解析器解析 HTML 文档。
- 下载图片到本地
使用requests库下载所有的图片,并将图片保存到本地。示例代码如下:
for url in image_urls:
response = requests.get(url, stream=True)
if response.status_code == 200:
with open(url.split('/')[-1], 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
else:
print("Error: ", response.status_code)
其中,url参数是需要下载的图片地址;response.iter_content()函数用于分块下载大文件。在下载完成后,程序将图片保存在和脚本文件相同的目录下,并以该图片的文件名命名。
示例说明
以获取公共图库Pexels(https://www.pexels.com/)中所有猫的图片为例,实现获取图片爬虫的功能。
- 发送HTTP请求获取网页内容
发送HTTP请求,获取网页内容,示例代码如下:
import requests
url = "https://www.pexels.com/search/cat/"
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)
if response.status_code == 200:
html_doc = response.text
else:
print("Error: ", response.status_code)
- 解析HTML标签获取图片链接地址
解析HTML标签,获取所有图片的链接地址,示例代码如下:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
image_urls = []
for img in soup.find_all('img'):
image_urls.append(img.get('src'))
print(image_urls)
- 下载图片到本地
下载所有的图片,并将图片保存到本地,示例代码如下:
for url in image_urls:
response = requests.get(url, stream=True)
if response.status_code == 200:
with open(url.split('/')[-1], 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
f.write(chunk)
else:
print("Error: ", response.status_code)
程序运行完成后,将在脚本文件所在的目录下看到下载好的所有猫的图片。
另外,您可以根据需要修改代码,实现获取其他类型的图片。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现简单的获取图片爬虫功能示例 - Python技术站