作者:envmm_884_836 | 来源:互联网 | 2023-01-06 15:06
本文通过借助beautifulsoup库实现了一个简单的用于爬网站图片的python爬虫,代码如下:fromurllibimportrequest#导出request
本文通过借助 beautifulsoup 库实现了一个简单的用于爬网站图片的 python 爬虫,代码如下:
from urllib import request # 导出 request 库
from bs4 import BeautifulSoup # 导出 beautifulsoup 库
import re, os # 搜索用到了正则表达式, os 模块用于创建本地文件夹
以下实现了两个函数,一个函数用于获取网页的地址列表,另一个函数用于从一个网页地址中抓取图片:
def getHtml(reqa): # 获取网页中的地址列表
with request.urlopen(reqa) as f:
soup = BeautifulSoup(f.read())
address_list = soup.find_all(href=re.compile(r'^/.*.html$')) # 获取网页地址列表
return address_list
def getImage(addr_list_image):
dir_num = 1 # 用于创建本地文件夹编号
for addr in addr_list_image:
image_num = 1 # 用于给图片编号
path = "C:/Users/Administrator/Desktop/image/%s"%dir_num
os.mkdir(path) # 创建本地文件夹
req_image = request.Request('http://www.meizitu.com%s'%addr['href'])
with request.urlopen(req_image) as f:
soup = BeautifulSoup(f.read())
image_list = soup.find_all(src=re.compile(r'^http:.*.jpg$'))
for image in image_list:
print(image['src']+'\n')
try: # 写了个 try...except... 错误处理语句,防止下载出现错误
request.urlretrieve(image['src'], path+'/%s.jpg'%image_num) #通过 request.urlretrieve 函数下载图片
except Exception:
pass
image_num += 1
f.close()
dir_num += 1
if __name__=="__main__": # 主函数
req = request.Request('http://www.meizitu.com/')
addr_list = getHtml(req)
getImage(addr_list)
以上就是这个简单爬虫的完整实现了,如有不妥之处,欢迎指正。