Python网页爬虫如何用while循环提取列表奇数索引内容
实现方案
方法1:按需求使用while循环实现
find_all返回的匹配结果是可索引的序列结构,你可以直接基于序列长度控制循环边界,初始索引设为1(对应第一个奇数位,Python为0基索引),每次步长加2即可自动跳过偶数索引,无需手动逐个写索引值。
完整可运行代码如下:
import bs4 from bs4 import BeautifulSoup import requests import lxml # 注意:原代码中requests.get的第二个参数'r'属于错误传参,此处已删除 vegas_insider = requests.get('https://www.vegasinsider.com/nfl/matchups/').text soup = BeautifulSoup(vegas_insider, 'lxml') # 先拿到所有匹配的元素列表 team_list = soup.find_all('a', class_ = 'tableText') # 初始化奇数索引起始值 index = 1 # 循环条件设置为索引小于列表总长度,避免下标越界 while index < len(team_list): team = team_list[index].text print(team) # 步长设为2,直接跳到下一个奇数索引 index += 2
方法2:更简洁的切片实现(可选)
Python原生支持序列切片语法[起始索引:结束索引:步长],直接使用[1::2]即可提取所有奇数索引的元素,无需手动控制循环变量,写法更简洁:
# 承接上述代码获取到team_list之后,直接遍历切片结果即可 for team in team_list[1::2]: print(team.text)
内容的提问来源于stack exchange,提问作者RookiePython
相关产品推荐
相关产品推荐

