from bs4 import BeautifulSoup
import requests
import os
# 爬单张图片
'''url = 'http://seopic.699pic.com/photo/50050/0366.jpg_wh1200.jpg'
r = requests.get(url)
f = open('123.jpg', 'wb') # 以二进制写入的方式打开一个名为123.jpg的文件 (后缀可随意改)
f.write(r.content) # 把r传输的字节流写入到文件中
f.close() # 关闭文件
#如果想要爬取多张图片
r = requests.get('http://699pic.com/tupian/jingyu.html')'''
import requests
import os
# 爬单张图片
'''url = 'http://seopic.699pic.com/photo/50050/0366.jpg_wh1200.jpg'
r = requests.get(url)
f = open('123.jpg', 'wb') # 以二进制写入的方式打开一个名为123.jpg的文件 (后缀可随意改)
f.write(r.content) # 把r传输的字节流写入到文件中
f.close() # 关闭文件
#如果想要爬取多张图片
r = requests.get('http://699pic.com/tupian/jingyu.html')'''
# r.content # 返回的是字节流
r=requests.get('http://699pic.com/tupian/jingyu.html')
soup = BeautifulSoup(r.content, 'html.parser') # 用html解析器,查找r.content
r=requests.get('http://699pic.com/tupian/jingyu.html')
soup = BeautifulSoup(r.content, 'html.parser') # 用html解析器,查找r.content
# tu = soup.find_all('img') # 查找所有的标签名字为“img”的对象
tu = soup.find_all(class_="lazy") # 查找所有的标签名字为“class_="lazy"”的对象
'''for i in tu:
# print(i)
# <img alt="洱海清晨的彩霞倒映水中高清图片" class="lazy" data-original="http://img95.699pic.com/photo/50061/5608.jpg_wh300.jpg" height="300" src="http://static.699pic.com/images/blank.png" title="洱海清晨的彩霞倒映水中图片下载" width="453.30915684497"/>
print(i['data-original']) # 获取所有的url地址'''
# 批量写入:
tu = soup.find_all(class_="lazy") # 查找所有的标签名字为“class_="lazy"”的对象
'''for i in tu:
# print(i)
# <img alt="洱海清晨的彩霞倒映水中高清图片" class="lazy" data-original="http://img95.699pic.com/photo/50061/5608.jpg_wh300.jpg" height="300" src="http://static.699pic.com/images/blank.png" title="洱海清晨的彩霞倒映水中图片下载" width="453.30915684497"/>
print(i['data-original']) # 获取所有的url地址'''
# 批量写入:
# 创建路径, 创建一个名为“tupian”的文件夹
curpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
tupian = os.path.join(curpath, 'tupian')
if not os.path.exists(tupian): # 判断名字为“tupian”的文件夹是否为不存在
os.mkdir(tupian) # 不存在,则创建名字为“tupian”的文件夹
# 批量写入图片并保存
for i in tu:
try:
url = i['data-original']# 要获取的图片的地址
url='http:'+url
name = i['alt']
r = requests.get(url)
# 写入内容,放到tupian文件夹下
f = open(os.path.join(tupian, '%s.jpg'%name), 'wb')
f.write(r.content)
f.close()
except:
pass
curpath = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
tupian = os.path.join(curpath, 'tupian')
if not os.path.exists(tupian): # 判断名字为“tupian”的文件夹是否为不存在
os.mkdir(tupian) # 不存在,则创建名字为“tupian”的文件夹
# 批量写入图片并保存
for i in tu:
try:
url = i['data-original']# 要获取的图片的地址
url='http:'+url
name = i['alt']
r = requests.get(url)
# 写入内容,放到tupian文件夹下
f = open(os.path.join(tupian, '%s.jpg'%name), 'wb')
f.write(r.content)
f.close()
except:
pass
1.单张图片的获取很简单到多张的时候得到的url没有http,所以在创建文件后没有下载下图片,后来观察后找到了原因,所以运行后就就得到了以上图片
2.主要找到了网站的每个图片标签下的共同点,就可以快速返回每个标签的信息