python爬虫简介
爬虫就其本质而言就是程序模拟浏览器访问网页的各种操作,其中网址的访问、图片、文字、音频的筛选下载等操作既是基础又是爬虫的灵魂所在,再此基础上的灵活运用,例如结合具体的要求如并发,分布式,大数据处理等等不断丰富了爬虫的内涵,使其逐渐分离成为一个独立的学科。
目标网页介绍
乐愚社区作为一个宅男基地,精选的美图可以说是十分符合宅男的口味,每页的推荐量少却是高质量,而正因为美图零散的分布在各个页面,手动保存显得十分繁杂,此时爬虫的功效就凸显出来了。

网页以及网址的分析
乐愚社区主要是web框架封装的app应用,没有专门适应浏览器的网页,所以浏览器打开UI依旧是app框架,其中美图版块进入地址为:https://bbs.leyuz.net/f/meitu,以目录形式展示每个图集,具体图片在点击目录项后的详情页中。目录共有465页(我原以为目录的页数是根据后台数据自动更新的没想到在js代码中写死了,汗!)

尝试着点击第二页,第三页,通过比较寻找url从的规律,发现从第二页开始的url满足规律为:
红色部分为各自的页面数,按着这样思路反推,验证https://bbs.leyuz.net/f/meitu?pn=1&od=0同样可以访问第一页。而每个目录项对应的href就是详情页的相对地址,最后具体页面直接就是存放着图片的地址。如此分析下来爬虫的工作就已经完成了一半了。
具体的python实现
首先获取脚本中规定的总页数的值count(以防后端心血来潮更改数字)
url = 'https://bbs.leyuz.net/f/meitu'
htmlcode = requests.get(url)
kk = re.compile('count: ([^,]*),')#找到网页总页数
list= kk.findall(htmlcode.text)
pagetotalnum = int(list[0])
然后就可以一页页的爬取详情页的相对URL,存储在detail中然后下载。
for i in range(pagetotalnum):
url = 'https://bbs.leyuz.net/f/meitu?pn='+str(i+1)+'&od=0'
htmlcode = requests.get(url)
soup = BeautifulSoup(htmlcode.text,'lx

本文介绍了如何使用Python爬虫批量下载乐愚社区的精美壁纸。通过分析网页URL规律,实现了从465页壁纸目录中抓取图片链接并下载的功能。爬虫先获取总页数,然后逐页爬取详情页的图片URL,最终将图片存储在本地文件夹中,以子文件夹形式按详情页相对地址组织,并采用随机字符和时间戳命名图片。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



