Chainguys 2021-07-22 16:13 采纳率: 93.6%
浏览 34
已结题

关于beautifulsoup返回的列表?

import requests
from bs4 import BeautifulSoup
url = "https://www.shicimingju.com/book/sanguoyanyi.html"
dicc = {
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"
}
a = requests.get(url, headers=dicc)
a.encoding = 'utf-8'
b = BeautifulSoup(a.text, 'lxml')
c =b.select('.book-mulu > ul >li > a')
print(c[0:3])
fp = open('./sanguo.txt','w')
for i in c[0:2]:
    title = i.string
    link = "https://www.shicimingju.com"+i['href']
    new_a = requests.get(link, headers=dicc)
    new_a.encoding = 'utf-8'
    new_b = BeautifulSoup(new_a.text, 'lxml')
    txt = new_b.find('div',"chapter_content").text
    fp.write(title+":"+txt+"\n")
    print(title ,'done!')
fp.close()

返回:
[第一回·宴桃园豪杰三结义 斩黄巾英雄首立功, 第二回·张翼德怒鞭督邮 何国舅谋诛宦竖, 第三回·议温明董卓叱丁原 馈金珠李肃说吕布]

第一回·宴桃园豪杰三结义 斩黄巾英雄首立功 done!
第二回·张翼德怒鞭督邮 何国舅谋诛宦竖 done!

为什么老是少一个项?该四个却返回三个,该三个却返回两个?

当然,其实全爬是没问题的,反正可以for循环,但是为什么少这一个?

  • 写回答

2条回答 默认 最新

  • python收藏家 2021-07-22 16:46
    关注

    c[0:2] 你切片写的就只有两个啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 创建了问题 7月22日

悬赏问题

  • ¥15 无源定位系统的时差估计误差标准差
  • ¥15 请问这个代码哪里有问题啊
  • ¥20 python--version在命令端输入结果Python is not defined怎么办?还有pip不是exe格式是不是没安装成功?
  • ¥15 通过GaussianView进行结构微调消除虚频
  • ¥15 调用transformers库
  • ¥15 由于导出的数据名字中带有/,导致Matlab打不开,怎么办?
  • ¥15 新硬盘安装的程序总是崩溃,提示遇到错误
  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题