在没有.pop之前rank列表里明明索引0,1是“ ”,索引2是“1”,但是我.pop索引0和1后,怎么原来的索引2变成了“ ”?
import requests
from lxml import etree
# 1.目标 url。
url = 'http://top.baidu.com/buzz?b=1&fr=topindex'
# 模拟浏览器请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'}
# 2.发送请求
data = requests.get(url, headers=headers)
# 转码
data.encoding = "utf-8"
datas = data.text
# 转换
html = etree.HTML(datas)
# 3.解析数据 xpath 取出来的数据是一个列表。
# 排名
rank = html.xpath('//div[contains(@class,"index_1Ew5p")]/text()')
rank.pop(0)
#rank.pop(1) #疑问点!!!!!!!!!!!!为什么我pop掉索引1的时候,索引2的值明明是"1"为什么会变成" "?
print(rank)
首先明确一点,python的list类型是可变类型
当pop(0)的时候,
list[0]
会变为pop之前list[1]
的值