#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)
我看不懂这段代码,求解释
这里的意思应该是选择某一个无序列表“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次
请问题主的核心问题是哪一块呢?
你好html页面是一棵树,有很多元素,select就是获取指定位置的内容。