其实这个功能是我在开始学python就一直想做的 学了很久然后才会这破东西 看的教程有些还没提到 自己又去百度现学 太惨了
废话少说 开干
-
首先打开贴吧的链接:https://tieba.baidu.com/p/5903016452
-
分析一下这个页面:
image.png -
这个img标签有个类属性 类名是BDE_Image 发现所有的图片都是这个类名 于是可以用BeautifulSoup去查找这个类名然后取出其中的src得到地址 再进行下载
-
方便起见 也看得懂 面向过程来写 不想写的有多优美 大家看的明白才是硬道理
代码摘要
import requests
import lxml
import hashlib
from bs4 import BeautifulSoup
</先引用上面的模块 部分模块需要自己安装/>
Url = 'https://tieba.baidu.com/p/5902645251'
</贴吧的地址/>
UserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
Header = {'User-Agent':UserAgent}
</传入浏览器标识/>
GetHtmlContent = requests.get(Url,headers = Header).content
</获取帖子源代码/>
FindPicClass = BeautifulSoup(GetHtmlContent,'lxml')
</构建Soup/>
FindPicClass = FindPicClass.select('.BDE_Image')
</查找类名/>
imgcount = 0
</定义文件名 后面保存文件用得上/>
SaveMd5Obj = hashlib.md5()
</构建MD5对象/>
for PickLink in FindPicClass:
PicSrc = PickLink.get('src')
</取出列表中所有的src地址/>
SaveMd5Obj.update('tieba')
</传入加密的字符串/>
Md5 = SaveMd5Obj.hexdigest()
</生成MD5值/>
path = 'd:/tmp/' + str(imgcount) + str(Md5) + '.jpg'
</定义存储目录和文件名以及后缀/>
ImgSave = open(path,'wb+')
</准备保存二进制文件/>
ImgUrl = requests.get(PicSrc).content
</获取src中的内容/>
ImgSave.write(ImgUrl)
</写入目标地址/>
ImgSave.close()
</结束文件操作/>
imgcount += 1
网友评论