- 需要导入requests包和BeautifulSoup
- 发送请求到服务器。事实上,我们代码拿到的是该页面的源码(在页面右键可以查看)
- 若出现乱码现象,说明我们跟网站上的编码格式不一样,需要转义才能正常显示
- 解析html ,main_page=BeautifulSoup(resp.text,‘html.parser’),所有的页面再进行解析时都有’html.parser’
- 然后用函数去找想要爬取内容的标签 例如find(‘div’,attrs={‘class’:‘TypeList’}),找到属性class=‘TypeList’的标签,并且找到满足需求的子标签
- 遍历这些子标签,重复2-5的操作,即发送请求到服务器,解析html,找到图片的img标签 获取该标签的src的属性
- 在发送请求到服务器,把获取到的图片保存即可
#1.用到的技术
#requests:发送请求,从服务器获取数据
#BeautifulSoup:解析整个页面的源代码
import requests
from bs4 import BeautifulSoup
#第一件事发送请求到服务器
resp=requests.get("https://www.umei.cc/meinvtupian/") #从服务器拿到源码
resp.encoding='utf-8' #转义
#解析HTML
main_page=BeautifulSoup(resp.text,'html.parser')
#从页面中找到某些东西
#find()找一个
#find_all()找所有
alst=main_page.find('div',attrs={'class':'TypeList'}).find_all('a',attrs={'class':'TypeBigPics'})
n=1
for a in alst:
#print(a.get("href"))
href='https://www.umei.cc'+a.get("href")
# 发送请求到子页面
resp1=requests.get(href)
resp1.encoding = 'utf-8'
# 进入到子页面后,解析HTML
child_page = BeautifulSoup(resp1.text,'html.parser')
#找到图片的src
src=child_page.find("div",attrs={"class":"ImageBody"}).find("img").get("src") #找到相应的标签,find('img').get('src')是找到该标签的属性
#发送请求到服务器,把图片保存到本地
#创建文件
f=open("tu_%s.jpg" % n ,mode='wb') #%s代替的是%n,wb表示写入的内容是非文本文件
f.write(requests.get(src).content) #向外拿出图片信息,并写入文件
print("恭喜你,下载好一张图片")
#增一
n+=1
跟着视频学的第一个爬虫,这段代码只能保存封面的第一张照片,若想保存图集还需要加一些东西。后续的问题自己试着写一下:怎么去爬取所有的照片,怎么去爬取评论等等,算是一个拓展吧!!!