python网络爬虫之爬取图片
本文最后更新于:2023年4月7日 下午
今天使用requests和BeautifulSoup爬取了一些图片,还是很有成就感的,注释可能有误,希望大家多提意见:
方法一:requests
import requests from bs4 import BeautifulSoup circle = requests.get('http://travel.quanjing.com/tag/12975/%E9%A9%AC%E5%B0%94%E4%BB%A3%E5%A4%AB') # 将获取的图片地址依次放入count中
count = []
# 将获取的网页内容放入BeautifulSoup
soup = BeautifulSoup(circle.text, ‘lxml‘)
# 根据谷歌SelectGadGet这个插件,获取html标签,比如获取:#gallery-list
for item in soup.select(‘#gallery-list‘):
# 用bs4中的find_all获取 #gallery-list 中是否存在 img这个标签
for img in item.find_all(‘img‘):
print(‘img‘, img)
# m 是 img标签中存在的属性
img_path = img.get(‘m‘)
count.append(img_path)
# 用enumerate依次取出count中的图片地址 放入v中
for i,v in enumerate(count):
# 将获取的v值再次放入request中进行与网站相应
image = requests.get(v)
# 存取图片过程中,出现不能存储 int 类型,故而,我们对他进行类型转换 str()。w:读写方式打开,b:二进制进行读写。图片一般用到的都是二进制。
with open(‘D:\img‘+str(i)+‘.jpg‘, ‘wb‘) as file:
# content:图片转换成二进制,进行保存。
file.write(image.content)
print(i)
方法二:urllib.request
from bs4 import BeautifulSoup import urllib.request as ure import os url = 'http://travel.quanjing.com/tag/12975/%E9%A9%AC%E5%B0%94%E4%BB%A3%E5%A4%AB' response = ure.urlopen(url, timeout=30) circle = response.read().decode('utf-8') # 将获取的图片地址依次放入count中
count = []
# 将获取的网页内容放入BeautifulSoup
soup = BeautifulSoup(circle, ‘lxml‘)
# 根据谷歌SelectGadGet这个插件,获取html标签,比如获取:#gallery-list
for item in soup.select(‘#gallery-list‘):
# 用bs4中的find_all获取 #gallery-list 中是否存在 img这个标签,limit:限制爬取的数量。
for img in item.find_all(‘img‘, limit=5):
print(‘img‘, img)
# m 是 img标签中存在的属性
img_path = img.get(‘m‘)
count.append(img_path)
if not os.path.exists(‘photo‘):
os.makedirs(‘photo‘)
# 用enumerate依次取出count中的图片地址 放入v中
for i,v in enumerate(count):
# 存取图片过程中,出现不能存储 int 类型,故而,我们对他进行类型转换 str()。w:读写方式打开,b:二进制进行读写。图片一般用到的都是二进制。
path = ‘photo\img‘+str(i)+‘.jpg‘
with open(path, ‘w‘) as file:
ure.urlretrieve(v, path)
print(i)
打赏支持
“如果你觉得我的文章不错,不妨鼓励我继续写作。”
python网络爬虫之爬取图片
https://dreamoneyou.github.io/2017/python网络爬虫之爬取图片/