Unjx.
2021-06-30 14:11
采纳率: 91.7%
浏览 16
已采纳

Python的BeautifulSoup的select解释

img

#encoding='utf-8'
import requests
from bs4 import BeautifulSoup
url = 'https://pic.netbian.com/e/search/result/?searchid=49'
page=requests.get(url)
soup = BeautifulSoup(page.text,features="html.parser")
 
#//dom节点位置
data = soup.select('html>body>div.class.wrap clearfix>div.id.main>div.class.slist>ul.class.clearfix>li>a')
 
#//转化html为节点内容
for i in data:
    result={
        'alt':i.get_text(),
        'link':i.get('href')
    }
    print(result)

我看不懂这段代码,求解释

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 赛里木samuel 2021-06-30 14:20
    已采纳

    这里的意思应该是选择某一个无序列表“li”下的所有a元素节点

    data = soup.select('html>body>div.class.wrap clearfix>div.id.main>div.class.slist>ul.class.clearfix>li>a')
    

    这一句返回的data是一个包含li下面所有a节点的一个list 然后

    for i in data:
        result={
            'alt':i.get_text(),
            'link':i.get('href')
        }
        print(result)
    

    对这个list进行遍历,对每一个a节点都以字典的形式输出这个节点的text和对应的href链接,后一个节点的数据会覆盖掉前一个节点,每次输出的是当前这个节点的数据 假如data这个list有n个元素,这个print就会执行n次

    请问题主的核心问题是哪一块呢?

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • yycgis 2021-06-30 14:15

    你好html页面是一棵树,有很多元素,select就是获取指定位置的内容。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题