python爬取表情包

该代码示例展示了如何使用Python的requests和BeautifulSoup库从fabiaoqing.com网站抓取并下载指定页面数的表情包图片。程序首先创建一个目录用于存放图片,然后设置请求头以模拟浏览器行为,遍历网页中的img标签,获取图片的URL和标题,并保存图片到本地。

效果图:

 源代码(说明就在注释里):

import os
import requests
from bs4 import BeautifulSoup

if not os.path.exists('./images/'):
    os.mkdir('./images/')

headers = {
    'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
}


def get(pos):
    url = f'https://fabiaoqing.com/biaoqing/lists/page/{pos}.html'
    response = requests.get(url, headers=headers).text

    '''
    lxml: html解析库,因为python和html两者没有关系
    python没有办法直接控制html代码
    我们就需要使用lxml这个库将html代码转成python对象
        需要大家去下载 pip install lxml
    '''
    soup = BeautifulSoup(response, 'lxml')
    img_list = soup.find_all('img', class_='ui image lazy')
    for img in img_list:
        img_url = img['data-original']
        img_title = img['title']
        print(img_url, img_title)
        try:
            with open('./images/' + img_title + os.path.splitext(img_url)[-1], 'wb') as f:
                '''
                因为一张图片是二进制数据
                    如果我们使用text文本形式返回
                    会对文件造成破坏
                    
                    使用content去返回原始数据
                    
                '''
                image = requests.get(img_url, headers=headers).content
                # 写入二进制数据 image这个变量是存储requests返回的二进制数据的
                f.write(image)
                print('保存成功:', img_title)
        except (PermissionError, IOError, Exception):
            pass


if __name__ == '__main__':
    a = int(input("几页?(1-280)"))
    if a > 280:
        raise Exception("YOU ARE A SB!!!!!!")
    for i in range(1, a + 1):
        get(i)
        print(f"已完成第{i}页")

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值