想学编程的石油人 2021-05-22 11:51 采纳率: 50%
浏览 19

用python做爬虫出现错误如何调试

错误:Traceback (most recent call last): File "F:\学习资料\大学计算机\Python简单网页爬虫示例\Python简单网页爬虫示例\大学排名\大学排名.py", line 33, in main() File "F:\学习资料\大学计算机\Python简单网页爬虫示例\Python简单网页爬虫示例\大学排名\大学排名.py", line 31, in main fillUnivList(uinfo,html) File "F:\学习资料\大学计算机\Python简单网页爬虫示例\Python简单网页爬虫示例\大学排名\大学排名.py", line 15, in fillUnivList for tr in soup.find('tbody').children: AttributeError: 'NoneType' object has no attribute 'children' >>> 这是原代码 from bs4 import BeautifulSoupimport bs4import requestsdef getHTMLText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: return ""def fillUnivList(ulist,html): soup=BeautifulSoup(html, "html.parser") for tr in soup.find('tbody').children: if isinstance(tr, bs4.element.Tag): tds=tr('td') ulist.append([tds[0].string,tds[1].string,tds[2].string])def printUnivList(ulist,num): print("{:^10}\t{:^6}\t{:^10}".format("排名","学校名称","分数")) for i in range(num): u=ulist[i] print("{:^10}\t{:^6}\t{:^10}".format(u[0],u[1],u[2])) print("Suc"+str(num))def main(): uinfo=[] url="https://www.shanghairanking.cn/rankings/bcur/2021.html" #排名网址 html=getHTMLText(url) fillUnivList(uinfo,html) printUnivList(uinfo,1000)main()import pandas as pdrank=pd.read_html('https://www.shanghairanking.cn/rankings/bcur/2021.html')rank[0]=rank[0].iloc[:,:]rank[0].to_csv("中国大学排名.csv",ending='utf_8_sig')print("Successful")

  • 写回答

1条回答 默认 最新

  • 江天暮雪丨 2021-05-22 12:30
    关注

    首先,提问可以选择代码段插入,眼睛舒服点。。

    # 插入代码段
    print('demo')

    然后,你的问题,错误信息已经很明确了,你想获取children属性:for tr in soup.find('tbody').children,但是你的soup.find('tbody')是个空,也就是没选中元素tbody,自然无法获取到它的属性children

    评论

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。