不多说直接上代码
首先需要安装需要的库,安装命令如下
pip install BeautifulSoup
pip install requests
pip install urllib
pip install lxmlfrom bs4 import BeautifulSoup # 贵族名宠网页爬虫
import requests import urllib.request # 网址 url = \'http://www.hengdadog.com/sale-1.html\' def allpage(): # 获得所有网页 all_url = [] for i in range(1, 8): #循环翻页次数 each_url = url.replace(url[-6], str(i)) # 替换 all_url.append(each_url) return (all_url) # 返回地址列表 if __name__ == \'__main__\': img_url = allpage() # 调用函数 for url in img_url: # 获得网页源代码 print(url) requ = requests.get(url) req = requ.text.encode(requ.encoding).decode() html = BeautifulSoup(req, \'lxml\') t = 0 # 选择目标url img_urls = html.find_all(\'img\') for k in img_urls: img = k.get(\'src\') # 图片 print(img) name = str(k.get(\'alt\')) # 名字,这里的强制类型转换很重要 type(name) # 先本地新建一下文件夹,保存图片并且命名 path = \'F:\\CAT\\\' # 路径 file_name = path + name + \'.jpg\' imgs = requests.get(img) # 存储入文件 try: urllib.request.urlretrieve(img, file_name) # 打开图片地址,下载图片保存在本
except: print("error")
运行效果:
上面代码有不少缺陷,比如需要手动创建目录以及判断目录是否存在,下载没有提示,于是做了些优化:
from bs4 import BeautifulSoup # 贵族名宠网页爬虫 import requests import urllib.request import os # 网址 url = \'http://www.hengdadog.com/sale-1.html\' if os.path.exists(\'F:\\CAT\'):#判断目录是否存在,存在则跳过,不存在则创建 pass else: os.mkdir(\'F:\\CAT\') def allpage(): # 获得所有网页 all_url = [] for i in range(1, 10): #循环翻页次数 each_url = url.replace(url[-6], str(i)) # 替换 all_url.append(each_url) return (all_url) # 返回地址列表 if __name__ == \'__main__\': img_url = allpage() # 调用函数 for url in img_url: # 获得网页源代码 print(url) requ = requests.get(url) req = requ.text.encode(requ.encoding).decode() html = BeautifulSoup(req, \'lxml\') t = 0 # 选择目标url img_urls = html.find_all(\'img\') for k in img_urls: img = k.get(\'src\') # 图片 print(img) name = str(k.get(\'alt\')) # 名字,这里的强制类型转换很重要 type(name) # 保存图片并且命名 path = \'F:\\CAT\\\' # 路径 file_name = path + name + \'.jpg\' imgs = requests.get(img) # 存储入文件 try: urllib.request.urlretrieve(img, file_name) # 打开图片地址,下载图片保存在本地, print(\'正在下载图片到F:\CAT目录······\') except: print("error")
打包成EXE文件:
进入文件目录输入如下命令
pyinstaller -F get_cat.py