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

如何避免打印空行?Python爬虫循环仅获首个链接问题求助

问题解答

问题一:如何避免打印空行?

  • 若在Python中打印内容,直接给print()函数指定end参数即可,比如print(目标内容, end=''),这样会取消默认添加的换行符,避免空行产生。
  • 若处理文件中的空行,读取内容后可通过列表推导式过滤空行,示例:[line.strip() for line in open('目标文件.txt') if line.strip()],再对过滤后的内容统一打印或写入。

问题二:爬取UFC拳手链接仅获取第一个链接的问题

问题原因

代码中使用的soup.find('td', {'class': 'b-statistics__table-col'})只会返回第一个匹配到的td标签,后续只能提取该标签内的链接,所以仅得到一个结果。

修复后的代码

import requests
from bs4 import BeautifulSoup

url = 'http://ufcstats.com/statistics/fighters?char=a'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml')
# 改用find_all获取所有符合class的td标签
all_tds = soup.find_all('td', class_='b-statistics__table-col')

fighter_links = []
for td in all_tds:
    # 从每个td中查找a标签
    anchor = td.find('a')
    if anchor and 'href' in anchor.attrs:
        fighter_links.append(anchor['href'])

print(fighter_links)

关键说明

  1. 用find_all()替换find(),获取页面中所有包含拳手链接的td元素;
  2. 遍历每个td标签,从中提取a标签的href属性;
  3. 添加判断逻辑,避免因部分td中无a标签或href属性导致报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:16:04