python批量爬取猫咪图片
不多说直接上代码
首先需要安装需要的库,安装命令如下
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
python批量爬取猫咪图片的更多相关文章
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- 从0实现python批量爬取p站插画
一.本文编写缘由 很久没有写过爬虫,已经忘得差不多了.以爬取p站图片为着手点,进行爬虫复习与实践. 欢迎学习Python的小伙伴可以加我扣群86七06七945,大家一起学习讨论 二.获取网页源码 爬取 ...
- python爬虫——爬取NUS-WIDE数据库图片
实验室需要NUS-WIDE数据库中的原图,数据集的地址为http://lms.comp.nus.edu.sg/research/NUS-WIDE.htm 由于这个数据只给了每个图片的URL,所以需 ...
- python 批量爬取四级成绩单
使用本文爬取成绩大致有几个步骤:1.提取表格(或其他格式文件——含有姓名,身份证等信息)中的数据,为进行准考证爬取做准备.2.下载准考证文件并提取出准考证和姓名信息.3.根据得到信息进行数据分析和存储 ...
- 用Python批量爬取优质ip代理
前言 有时候爬的次数太多时ip容易被禁,所以需要ip代理的帮助.今天爬的思路是:到云代理获取大量ip代理,逐个检测,将超时不可用的代理排除,留下优质的ip代理. 一.爬虫分析 首先看看今天要爬取的网址 ...
- python批量爬取动漫免费看!!
实现效果 运行环境 IDE VS2019 Python3.7 Chrome.ChromeDriver Chrome和ChromeDriver的版本需要相互对应 先上代码,代码非常简短,包含空行也才50 ...
- Python批量爬取谷歌原图,2021年最新可用版
文章目录 前言 一.环境配置 1.安装selenium 2.使用正确的谷歌浏览器驱动 二.使用步骤 1.加载chromedriver.exe 2.设置是否开启可视化界面 3.输入关键词.下载图片数.图 ...
- python 批量爬取代理ip
import urllib.request import re import time import random def getResponse(url): req = urllib.request ...
- java爬取猫咪上的图片
首先是对知识点归纳 1.用到获取网页源代码,分析图片地址,发现图片的地址都是按编号排列的,所以想到用循环获取 2.保存图片要用到流操作和文件操作,对两部分知识进行了复习巩固 3.保存后的图片有一部分是 ...
随机推荐
- javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;
var str='get-element-by-id'; function strToupper(str) { //利用split将字符串分割成数组var arr= str.split('-'); f ...
- 深度学习中卷积层和pooling层的输出计算公式(转)
原文链接:https://blog.csdn.net/yepeng_xinxian/article/details/82380707 1.卷积层的输出计算公式class torch.nn.Conv2d ...
- 企业级数据大屏设计如何实现,div+html+echarts
大屏是什么? 大屏设计是最近比较流行的概念,一般按照功能来分有几种: 1. 可交互的触摸屏,大多运用在互动教学课程或者报告演示现场,用户可结合交互操作来阐述具体内容.设计师需要对交互形式和传达内容作统 ...
- cmd中执行mvn help:system报错的解决办法
[ERROR] No plugin found for prefix 'help' in the current project and in the plugin groups [org.apach ...
- python开发初识(一)
python开发 机器码和字节码 机器码 :计算机可以直接认识的语言 字节码 :高级语言转换成机器码去执行 语言之间的对比: C,汇编 :C语言是根语言 python Java :既能写前端,又能写后 ...
- CF1108E2 Array and Segments (Hard version)
线段树 对于$Easy$ $version$可以枚举极大值和极小值的位置,然后判断即可 但对于$Hard$ $version$明显暴力同时枚举极大值和极小值会超时 那么,考虑只枚举极小值 对于数轴上每 ...
- H5--自动刷新
每30秒中刷新当前html页面: <meta http-equiv="refresh" content="30">
- php之4个坐标点判断是否为矩形和正方形
代码 <?php $a=[0,0]; $b=[0,1]; $c=[1,1]; $d=[1,0]; $ar=array($a,$b,$c,$d); $a1=[]; // 0 1 2 3 forea ...
- c#分割习题
2.从一个记录了学生成绩的文本文档,每个学生成绩是一行,每行是用 | 分割的数据,用 | 分割的域分别是姓名.年龄.成绩.年级,写程序取出各个年级成绩最高学生的成绩.年级放到集合中.提示:(1)使用 ...
- 微信小程序开发实战(云开发)--资产管理工具
添加首页 menu页面 截图展示 menu.js源码 // pages/menu/menu.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听 ...