BeautifulSoup编写PYTHON爬虫案例-下载MM图片

本文记录了一位python初学者制作的爬虫案例,目标是下载煎蛋网前10页的美女图片。通过分析网页结构,找到图片和下一页链接的URL,实现了循环抓取并保存图片。
摘要由CSDN通过智能技术生成

python小白学爬虫

断断续续学习python差不多也有2个月了,摸了不少坑磕磕绊绊的完成了这个爬虫,对我来说还算蛮有意义的,留档纪念下。

爬虫背景

目的:爬取网页前10页的MM图片
网页:http://jandan.net/ooxx(煎蛋网,正经网站)
分析过程:
1、查找当前页面多个图片的URL
2、查找下一页URL
3、循环打开10个页面分别保存每个页面的MM图片

代码如下:

import requests
from bs4 import BeautifulSoup

def img_urls(url):
#查找页面所有图片URL        
        header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
        res = requests.get(url,headers=header).text
        soup = BeautifulSoup(res,'html.parser')        
        a=soup.find_all('img')
        img_urls=['http:'+a[x]['src'] for x in range(len(a))]
        return img_urls

def next_url(url):
#查找下一页url
        header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
        res = requests.get(url,headers=header).text
        soup = BeautifulSoup(res,'html.parser')
        page_tag = soup.find('span',class_='current-comment-page')        
        next_url = 'http:'+page_tag.nextSibling.nextSibling['href']       
        return next_url
        
def save_img(url):
#保存图片
        header = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
        res = requests.get(url,headers=header).content
        img_name = url.split('/')[-1]
        with open(img_name,'wb') as f:
                f.write(res)

def main():
        url = 'http://jandan.net/ooxx'
        number = 10
        #imgs = []
        while number:                
                number-=1
                imgs=img_urls(url)                
                for img_url in imgs:                        
                        save_img(img_url)                        
                url = next_url(url)                

if __name__=='__main__':
        main()      


目前水平就这样了,后期慢慢优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值