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

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条回答 默认 最新

  • 钟觉浅Tech 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次

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改