一、准备工作

1、需要用到的网站

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

2、需要使用的模块

pip install requests  
pip install beautifulsoup4
pip install lxml

二、获取对应标签信息

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

python 使用select python中select用法_python 使用select


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()

python 使用select python中select用法_下载地址_02

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

python 使用select python中select用法_python_03

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

python 使用select python中select用法_python_04

  • 上面我们已经获取了每个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()

python 使用select python中select用法_python 使用select_05

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()

python 使用select python中select用法_xml_06

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

python 使用select python中select用法_xml_07

  • 获取了所有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()

python 使用select python中select用法_python 使用select_08