前言
当我们在网上看到喜欢的图片想要下载保存时,可能会遇到让你登录或者是微信关注公众号等等一些情况。这时,我们就可以通过爬虫来获取我们想要的图片了。
准备工作
首先我们需要先引入第三方库
import requests
import time
from bs4 import BeautifulSoup
大致步骤
1.获取源网页的url
2.对网页进行解析
3.从源网页中获取子网页的url
4.对子网页进行解析
5.从子网页中获取图片的下载链接
6.保存图片到指定位置
全部代码
import requests
import time
from bs4 import BeautifulSoup
url="https://pic.netbian.com/4kdongman/index.html"
main_url="https://pic.netbian.com"
#得到父网页的源代码
resp=requests.get(url)
#编码方式为gbk
resp.encoding='gbk'
#对网页进行解析
main_page=BeautifulSoup(resp.text,"html.parser")
#在父网页中搜索子网页的url
alist=main_page.find("ul",class_="clearfix").find_all("a")
for a in alist:
#拼接得到子网页的url
chil_page_url=main_url+a.get("href")
#得到子网页的源代码
chil_page_resp=requests.get(chil_page_url)
# 编码方式为gbk
chil_page_resp.encoding='gbk'
#得到图片所在网页的源代码
chil_page_text=chil_page_resp.text
#print(chil_page_text)
# 对网页进行解析
chil_page=BeautifulSoup(chil_page_text,"html.parser")
#找到网页中图片所在的位置
p=chil_page.find("a",id="img")
#print(p)
img=p.find("img")
#图片名称
img_name=img.get("title")+'.jpg'
print(img_name)
#图片所在的网页
img_url=main_url+img.get("src")
print(img_url)
img_resp=requests.get(img_url)
#保存图片
with open(img_name,mode="wb") as f:
f.write(img_resp.content)
print(img_name,"下载完成!!!")
time.sleep(1)
print("全部保存完成!!!")
总结
对于网页的解析主流的方法有:正则表达式,Beautifulsoup,xpath这三中方法,本文用的是Beautifulsoup的解析方法,感兴趣的小伙伴还可以试试其他的两种方法。