python爬虫批量爬取乐愚社区精美壁纸

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

python爬虫简介

爬虫就其本质而言就是程序模拟浏览器访问网页的各种操作,其中网址的访问、图片、文字、音频的筛选下载等操作既是基础又是爬虫的灵魂所在,再此基础上的灵活运用,例如结合具体的要求如并发,分布式,大数据处理等等不断丰富了爬虫的内涵,使其逐渐分离成为一个独立的学科。

目标网页介绍

乐愚社区作为一个宅男基地,精选的美图可以说是十分符合宅男的口味,每页的推荐量少却是高质量,而正因为美图零散的分布在各个页面,手动保存显得十分繁杂,此时爬虫的功效就凸显出来了。

乐愚社区美图界面截图

网页以及网址的分析

乐愚社区主要是web框架封装的app应用,没有专门适应浏览器的网页,所以浏览器打开UI依旧是app框架,其中美图版块进入地址为:https://bbs.leyuz.net/f/meitu,以目录形式展示每个图集,具体图片在点击目录项后的详情页中。目录共有465页(我原以为目录的页数是根据后台数据自动更新的没想到在js代码中写死了,汗!)
部分网页源码
尝试着点击第二页,第三页,通过比较寻找url从的规律,发现从第二页开始的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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值