You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python向已索引列表追加值仅返回重复单值的问题如何解决

问题原因
  • 全局累加的strip列表逻辑错误:你将strip = []定义在页面遍历循环外,每次请求新页面都会往strip追加新内容,但代码固定取strip[0]也就是第一个页面的解析结果,因此所有存入的数据都是第一个页面的重复值。
  • 你去掉[0]后报错的原因:去掉[0]后操作的是strip这个列表对象,列表本身没有split方法,因此触发类型错误,问题本质不是[0]写法不对,而是不需要全局累积所有页面的文本内容。
  • 代码存在语法错误:storeit['hospital'].append(list_data[1::3][0][0)行缺少右括号,运行会直接抛出语法异常。
修正方案

将文本处理逻辑改为每个页面单独处理当前抓取到的内容,不需要跨页面累积文本,修正后代码如下:

import requests
from bs4 import BeautifulSoup

href_url = ['https://www.nhs.uk/Services/Trusts/Overview/DefaultView.aspx?id=103',
 'https://www.nhs.uk/Services/Trusts/Overview/DefaultView.aspx?id=827']

storeit = {'phone':[],'hospital':[],'postcode':[],'link':[]}

# 直接遍历链接列表,写法更简洁
for url in href_url:
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'lxml')
    # 先判断板块是否存在,避免后续调用属性报错
    panel = soup.find('div',{'class':'panel-content'})
    if not panel:
        continue
    codes = panel.find_all('p')
    for h in codes:
        cur_text = h.text.strip()
        if not cur_text:
            continue
        # 直接处理当前p标签的文本,不需要存入全局列表
        list_data = [l.split(',') for l in cur_text.split('\n') if l]
        storeit['phone'].append(list_data[::4])
        storeit['hospital'].append(list_data[1::3][0][0]) # 补全缺失的右括号
        storeit['postcode'].append(list_data[2::3][0][3])
        storeit['link'].append(list_data[3::3])

如果每个页面的panel-content板块下只有1个符合要求的p标签,可以去掉内层遍历循环,简化写法:

for url in href_url:
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'lxml')
    panel = soup.find('div',{'class':'panel-content'})
    if not panel:
        continue
    codes = panel.find_all('p')
    if codes:
        cur_text = codes[0].text.strip()
        list_data = [l.split(',') for l in cur_text.split('\n') if l]
        storeit['phone'].append(list_data[::4])
        storeit['hospital'].append(list_data[1::3][0][0])
        storeit['postcode'].append(list_data[2::3][0][3])
        storeit['link'].append(list_data[3::3])

内容的提问来源于stack exchange,提问作者Stackcans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:36:01