python_html页面中select和find的使用方法

一、准备工作

1、需要用到的网站

https://www.ivsky.com/tupian/songshulin_v64748/

2、需要使用的模块

pip install requests  
pip install beautifulsoup4
pip install lxml

二、获取对应标签信息

  • 首先我们先打开网站,按F12查看页面。如果我们想要获取图片的下载地址,那我们可以通过select和find方法来获取

在这里插入图片描述
1、select方法获取

  • 首先我们先获取整个页面信息
import requests
from bs4 import BeautifulSoup


def img():
    url = 'https://www.ivsky.com/tupian/songshulin_v64748/'  # 需要访问的地址
    res = requests.get(url)  # 访问地址
    soup = BeautifulSoup(res.text, "lxml")  # 定义一个Soup对象,lxml 解析器
    print(soup)


if __name__ == "__main__":
    img()

在这里插入图片描述

  • 通过select我们获取了页面中的所有img标签
    label = soup .select("img")  # # 搜索页面中所有的img标签,以列表的形式展示
    print(label)

在这里插入图片描述

  • 通过循环列表获取每条img标签
    for i in label:
        print(i)  # 循环列表获取每条img标签

在这里插入图片描述

  • 上面我们已经获取了每个img标签,下面我们将获取到图片的下载地址

完整代码

import requests
from bs4 import BeautifulSoup


def img():
    url = 'https://www.ivsky.com/tupian/songshulin_v64748/'  # 需要访问的地址
    res = requests.get(url)  # 访问地址
    soup = BeautifulSoup(res.text, "lxml")  # 定义一个Soup对象,lxml 解析器
    label = soup .select("img")  # 搜索页面中所有的img标签,以列表的形式展示
    for i in label:
        src = i['src']  # 获取图片下载地址
        print(src)  # 循环打印图片下载地址


if __name__ == "__main__":
    img()

在这里插入图片描述

2、find方法获取

  • 首先我们需要获取到所有图片的标签,下图就是选中所有图片的效果
    在这里插入图片描述
import requests
from bs4 import BeautifulSoup


def img():
    url = 'https://www.ivsky.com/tupian/songshulin_v64748/'  # 需要访问的地址
    res = requests.get(url)  # 访问地址
    soup = BeautifulSoup(res.text, "lxml")  # 定义一个Soup对象,lxml 解析器
    label = soup.find('ul', attrs={'class': 'pli'})  # 获取ul标签的class属性,find只能获取第一个数据
    print(label)


if __name__ == "__main__":
    img()

在这里插入图片描述

  • 下面我们要获取每张图片的标签,通过find_all获取所有的
    在这里插入图片描述
    a = label.find_all('li') #获取当前所有的li标签
    print(a)

在这里插入图片描述

  • 获取了所有li标签后,接下来我们要在li标签中找到img标签,并获取图片下载地址,

完整代码

import requests
from bs4 import BeautifulSoup


def img():
    url = 'https://www.ivsky.com/tupian/songshulin_v64748/'  # 需要访问的地址
    res = requests.get(url)  # 访问地址
    soup = BeautifulSoup(res.text, "lxml")  # 定义一个Soup对象,lxml 解析器
    label = soup.find('ul', attrs={'class': 'pli'})  # 获取ul标签的class属性,只获取第一个数据
    for i in label.find_all('li'):   # 获取当前所有的li标签
        a = i.find('img')  # 获取img标签
        print(a)
        print(a['src'])  # 获取下载地址


if __name__ == "__main__":
    img()

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值