Qwe3141526 2024-09-27 15:59 采纳率: 0%
浏览 7
已结题

python for everybody 使用Beautifulsoup构建soup对象的时候疯狂报错

我疯掉了
我现在正在学python for everybody
在写这个代码

import urllib.request,urllib.parse,urllib.error
from bs4 import BeautifulSoup
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input("Enter URL:")
count = int(input("Enter count:"))
position = int(input("Enter position:"))

for i in range(1, count + 1):
    html = urllib.request.urlopen(url, context=ctx).read()
    print(html)
    soup = BeautifulSoup(html, "html.parser")
    print(soup)
    tags = soup('a')
    url = tags[position - 1].get('href')
    print(url)

报错如下,我已经重新装了beautifulsoup 甚至重新装了python都不行
每次构建soup对象的时候就疯狂报错
有没有人帮忙看看

D:\python\python.exe D:/totalCode/develop.py
Enter URL:http://py4e-data.dr-chuck.net/known_by_Kaylen.html
Enter count:7
Enter position:18
b'<html>\n<head>\n<title>People that Kaylen knows</title>\n<style>\n.overlay{\n    opacity:0.99;\n    background-color:#eee;\n    position:fixed;\n    width:100%;\n    height:100%;\n    top:0px;\n    left:0px;\n    z-index:1000;\n}\n</style>\n</head>\n<body>\n<h1>People that Kaylen knows</h1>\n<div class="overlay" id="overlay" style="display:none" >\n<center>\n<h2>\nThis screen randomly changes the height between list items and vanishes \nafter a while to make sure that you retrieve and process the data\nin a Python program rather than simply counting down pressing links, and \ndoing the assignment without writing a Python program :).\nThe names are in the same order in the HTML even though they \nshift around on the screen visually.\nYour Python program can look at the page as long as it likes.\n</h2>\n</center>\n</div>\n<ul>\n<li style="margin-top: 4px;"><a href="http://py4e-data.dr-chuck.net/known_by_Tubagus.html">Tubagus</a></li>\n<li style="margin-top: 15px;"><a href="http://py4e-data.dr-chuck.net/known_by_Hailey.html">Hailey</a></li>\n<li style="margin-top: 2px;"><a href="http://py4e-data.dr-chuck.net/known_by_Remy.html">Remy</a></li>\n<li style="margin-top: 19px;"><a href="http://py4e-data.dr-chuck.net/known_by_Blythe.html">Blythe</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Abbegail.html">Abbegail</a></li>\n<li style="margin-top: 9px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kyron.html">Kyron</a></li>\n<li style="margin-top: 14px;"><a href="http://py4e-data.dr-chuck.net/known_by_Michael.html">Michael</a></li>\n<li style="margin-top: 20px;"><a href="http://py4e-data.dr-chuck.net/known_by_Beatriz.html">Beatriz</a></li>\n<li style="margin-top: 7px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kizzy.html">Kizzy</a></li>\n<li style="margin-top: 8px;"><a href="http://py4e-data.dr-chuck.net/known_by_Irvine.html">Irvine</a></li>\n<li style="margin-top: 27px;"><a href="http://py4e-data.dr-chuck.net/known_by_Tanya.html">Tanya</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rhiannnon.html">Rhiannnon</a></li>\n<li style="margin-top: 3px;"><a href="http://py4e-data.dr-chuck.net/known_by_Neelam.html">Neelam</a></li>\n<li style="margin-top: 37px;"><a href="http://py4e-data.dr-chuck.net/known_by_Ciara.html">Ciara</a></li>\n<li style="margin-top: 1px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rawia.html">Rawia</a></li>\n<li style="margin-top: 27px;"><a href="http://py4e-data.dr-chuck.net/known_by_Omri.html">Omri</a></li>\n<li style="margin-top: 15px;"><a href="http://py4e-data.dr-chuck.net/known_by_Himani.html">Himani</a></li>\n<li style="margin-top: 38px;"><a href="http://py4e-data.dr-chuck.net/known_by_Tokinaga.html">Tokinaga</a></li>\n<li style="margin-top: 43px;"><a href="http://py4e-data.dr-chuck.net/known_by_Likiesha.html">Likiesha</a></li>\n<li style="margin-top: 15px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kahlea.html">Kahlea</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Warkhas.html">Warkhas</a></li>\n<li style="margin-top: 12px;"><a href="http://py4e-data.dr-chuck.net/known_by_Alissa.html">Alissa</a></li>\n<li style="margin-top: 7px;"><a href="http://py4e-data.dr-chuck.net/known_by_Teigon.html">Teigon</a></li>\n<li style="margin-top: 29px;"><a href="http://py4e-data.dr-chuck.net/known_by_Griffyn.html">Griffyn</a></li>\n<li style="margin-top: 38px;"><a href="http://py4e-data.dr-chuck.net/known_by_Amilie.html">Amilie</a></li>\n<li style="margin-top: 46px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rudi.html">Rudi</a></li>\n<li style="margin-top: 34px;"><a href="http://py4e-data.dr-chuck.net/known_by_Brett.html">Brett</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Raphaela.html">Raphaela</a></li>\n<li style="margin-top: 6px;"><a href="http://py4e-data.dr-chuck.net/known_by_Irvin.html">Irvin</a></li>\n<li style="margin-top: 11px;"><a href="http://py4e-data.dr-chuck.net/known_by_Madox.html">Madox</a></li>\n<li style="margin-top: 54px;"><a href="http://py4e-data.dr-chuck.net/known_by_Ayooluwa.html">Ayooluwa</a></li>\n<li style="margin-top: 40px;"><a href="http://py4e-data.dr-chuck.net/known_by_Mohanad.html">Mohanad</a></li>\n<li style="margin-top: 21px;"><a href="http://py4e-data.dr-chuck.net/known_by_Prince.html">Prince</a></li>\n<li style="margin-top: 4px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kamaljit.html">Kamaljit</a></li>\n<li style="margin-top: 37px;"><a href="http://py4e-data.dr-chuck.net/known_by_Roisin.html">Roisin</a></li>\n<li style="margin-top: 54px;"><a href="http://py4e-data.dr-chuck.net/known_by_Jared.html">Jared</a></li>\n<li style="margin-top: 41px;"><a href="http://py4e-data.dr-chuck.net/known_by_Seze.html">Seze</a></li>\n<li style="margin-top: 14px;"><a href="http://py4e-data.dr-chuck.net/known_by_Darrach.html">Darrach</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Lara.html">Lara</a></li>\n<li style="margin-top: 36px;"><a href="http://py4e-data.dr-chuck.net/known_by_Eden.html">Eden</a></li>\n<li style="margin-top: 32px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kamilah.html">Kamilah</a></li>\n<li style="margin-top: 40px;"><a href="http://py4e-data.dr-chuck.net/known_by_Sayf.html">Sayf</a></li>\n<li style="margin-top: 1px;"><a href="http://py4e-data.dr-chuck.net/known_by_Jagoda.html">Jagoda</a></li>\n<li style="margin-top: 37px;"><a href="http://py4e-data.dr-chuck.net/known_by_Pushkar.html">Pushkar</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Majka.html">Majka</a></li>\n<li style="margin-top: 29px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kayda.html">Kayda</a></li>\n<li style="margin-top: 17px;"><a href="http://py4e-data.dr-chuck.net/known_by_Stephenjunior.html">Stephenjunior</a></li>\n<li style="margin-top: 53px;"><a href="http://py4e-data.dr-chuck.net/known_by_Mathilda.html">Mathilda</a></li>\n<li style="margin-top: 46px;"><a href="http://py4e-data.dr-chuck.net/known_by_Ilona.html">Ilona</a></li>\n<li style="margin-top: 40px;"><a href="http://py4e-data.dr-chuck.net/known_by_Mara.html">Mara</a></li>\n<li style="margin-top: 5px;"><a href="http://py4e-data.dr-chuck.net/known_by_Gillian.html">Gillian</a></li>\n<li style="margin-top: 34px;"><a href="http://py4e-data.dr-chuck.net/known_by_Zubayr.html">Zubayr</a></li>\n<li style="margin-top: 29px;"><a href="http://py4e-data.dr-chuck.net/known_by_Vasiliki.html">Vasiliki</a></li>\n<li style="margin-top: 22px;"><a href="http://py4e-data.dr-chuck.net/known_by_Hawaa.html">Hawaa</a></li>\n<li style="margin-top: 12px;"><a href="http://py4e-data.dr-chuck.net/known_by_Juan.html">Juan</a></li>\n<li style="margin-top: 4px;"><a href="http://py4e-data.dr-chuck.net/known_by_Macy.html">Macy</a></li>\n<li style="margin-top: 58px;"><a href="http://py4e-data.dr-chuck.net/known_by_Aakriti.html">Aakriti</a></li>\n<li style="margin-top: 16px;"><a href="http://py4e-data.dr-chuck.net/known_by_Azedine.html">Azedine</a></li>\n<li style="margin-top: 13px;"><a href="http://py4e-data.dr-chuck.net/known_by_Aleksander.html">Aleksander</a></li>\n<li style="margin-top: 6px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kaelan.html">Kaelan</a></li>\n<li style="margin-top: 83px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kandi.html">Kandi</a></li>\n<li style="margin-top: 82px;"><a href="http://py4e-data.dr-chuck.net/known_by_Marwah.html">Marwah</a></li>\n<li style="margin-top: 78px;"><a href="http://py4e-data.dr-chuck.net/known_by_Monika.html">Monika</a></li>\n<li style="margin-top: 21px;"><a href="http://py4e-data.dr-chuck.net/known_by_Aisa.html">Aisa</a></li>\n<li style="margin-top: 20px;"><a href="http://py4e-data.dr-chuck.net/known_by_Keilan.html">Keilan</a></li>\n<li style="margin-top: 63px;"><a href="http://py4e-data.dr-chuck.net/known_by_Freddie.html">Freddie</a></li>\n<li style="margin-top: 21px;"><a href="http://py4e-data.dr-chuck.net/known_by_Ben.html">Ben</a></li>\n<li style="margin-top: 7px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kiern.html">Kiern</a></li>\n<li style="margin-top: 44px;"><a href="http://py4e-data.dr-chuck.net/known_by_Anastazja.html">Anastazja</a></li>\n<li style="margin-top: 87px;"><a href="http://py4e-data.dr-chuck.net/known_by_Inemesit.html">Inemesit</a></li>\n<li style="margin-top: 10px;"><a href="http://py4e-data.dr-chuck.net/known_by_Fathma.html">Fathma</a></li>\n<li style="margin-top: 40px;"><a href="http://py4e-data.dr-chuck.net/known_by_Courtneylee.html">Courtneylee</a></li>\n<li style="margin-top: 78px;"><a href="http://py4e-data.dr-chuck.net/known_by_Cator.html">Cator</a></li>\n<li style="margin-top: 68px;"><a href="http://py4e-data.dr-chuck.net/known_by_Kareena.html">Kareena</a></li>\n<li style="margin-top: 21px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rosea.html">Rosea</a></li>\n<li style="margin-top: 26px;"><a href="http://py4e-data.dr-chuck.net/known_by_Abdallah.html">Abdallah</a></li>\n<li style="margin-top: 99px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rhona.html">Rhona</a></li>\n<li style="margin-top: 11px;"><a href="http://py4e-data.dr-chuck.net/known_by_Glen.html">Glen</a></li>\n<li style="margin-top: 52px;"><a href="http://py4e-data.dr-chuck.net/known_by_Marina.html">Marina</a></li>\n<li style="margin-top: 50px;"><a href="http://py4e-data.dr-chuck.net/known_by_Euphemia.html">Euphemia</a></li>\n<li style="margin-top: 57px;"><a href="http://py4e-data.dr-chuck.net/known_by_Dawson.html">Dawson</a></li>\n<li style="margin-top: 64px;"><a href="http://py4e-data.dr-chuck.net/known_by_Sidharth.html">Sidharth</a></li>\n<li style="margin-top: 12px;"><a href="http://py4e-data.dr-chuck.net/known_by_Violet.html">Violet</a></li>\n<li style="margin-top: 26px;"><a href="http://py4e-data.dr-chuck.net/known_by_Lillia.html">Lillia</a></li>\n<li style="margin-top: 5px;"><a href="http://py4e-data.dr-chuck.net/known_by_Reily.html">Reily</a></li>\n<li style="margin-top: 46px;"><a href="http://py4e-data.dr-chuck.net/known_by_Amelka.html">Amelka</a></li>\n<li style="margin-top: 77px;"><a href="http://py4e-data.dr-chuck.net/known_by_Roan.html">Roan</a></li>\n<li style="margin-top: 2px;"><a href="http://py4e-data.dr-chuck.net/known_by_Conal.html">Conal</a></li>\n<li style="margin-top: 97px;"><a href="http://py4e-data.dr-chuck.net/known_by_Demmi.html">Demmi</a></li>\n<li style="margin-top: 92px;"><a href="http://py4e-data.dr-chuck.net/known_by_Naia.html">Naia</a></li>\n<li style="margin-top: 53px;"><a href="http://py4e-data.dr-chuck.net/known_by_Nicolina.html">Nicolina</a></li>\n<li style="margin-top: 23px;"><a href="http://py4e-data.dr-chuck.net/known_by_Emilyann.html">Emilyann</a></li>\n<li style="margin-top: 117px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rudy.html">Rudy</a></li>\n<li style="margin-top: 13px;"><a href="http://py4e-data.dr-chuck.net/known_by_Iman.html">Iman</a></li>\n<li style="margin-top: 10px;"><a href="http://py4e-data.dr-chuck.net/known_by_Rahman.html">Rahman</a></li>\n<li style="margin-top: 3px;"><a href="http://py4e-data.dr-chuck.net/known_by_Koby.html">Koby</a></li>\n<li style="margin-top: 2px;"><a href="http://py4e-data.dr-chuck.net/known_by_Daysi.html">Daysi</a></li>\n<li style="margin-top: 64px;"><a href="http://py4e-data.dr-chuck.net/known_by_Aseel.html">Aseel</a></li>\n<li style="margin-top: 43px;"><a href="http://py4e-data.dr-chuck.net/known_by_Roary.html">Roary</a></li>\n<li style="margin-top: 79px;"><a href="http://py4e-data.dr-chuck.net/known_by_Dharam.html">Dharam</a></li>\n</ul>\n<script>\n// http://stackoverflow.com/questions/20423322/simple-setting-off-display-none-block-with-javascript\nfunction showHide(id) {\n    var el = document.getElementById(id);\n    if( el && el.style.display == \'none\')    \n        el.style.display = \'block\';\n    else \n        el.style.display = \'none\';\n}\nsetTimeout(\'showHide("overlay");\', 2500);\n\n</script>\n</body>\n</html>\n'
Traceback (most recent call last):
  File "D:\totalCode\develop.py", line 457, in <module>
    soup = BeautifulSoup(html, "html.parser")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\__init__.py", line 215, in __init__
    self._feed()
  File "D:\totalCode\bs4\__init__.py", line 239, in _feed
    self.builder.feed(self.markup)
  File "D:\totalCode\bs4\builder\_htmlparser.py", line 164, in feed
    parser.feed(markup)
  File "D:\python\Lib\html\parser.py", line 111, in feed
    self.goahead(0)
  File "D:\python\Lib\html\parser.py", line 171, in goahead
    k = self.parse_starttag(i)
        ^^^^^^^^^^^^^^^^^^^^^^
  File "D:\python\Lib\html\parser.py", line 338, in parse_starttag
    self.handle_starttag(tag, attrs)
  File "D:\totalCode\bs4\builder\_htmlparser.py", line 62, in handle_starttag
    self.soup.handle_starttag(name, None, None, attr_dict)
  File "D:\totalCode\bs4\__init__.py", line 404, in handle_starttag
    self.currentTag, self._most_recent_element)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 1001, in __getattr__
    return self.find(tag)
           ^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 1238, in find
    l = self.find_all(name, attrs, recursive, text, 1, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 1259, in find_all
    return self._find_all(name, attrs, text, limit, generator, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 516, in _find_all
    strainer = SoupStrainer(name, attrs, text, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 1560, in __init__
    self.text = self._normalize_search_value(text)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\totalCode\bs4\element.py", line 1565, in _normalize_search_value
    if (isinstance(value, str) or isinstance(value, collections.Callable) or hasattr(value, 'match')
                                                    ^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'collections' has no attribute 'Callable'

Process finished with exit code 1


  • 写回答

13条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-09-27 16:01
    关注

    稍等,我在编辑器帮你调试下
    你的代码我跑了,并没有报错,可能你需要升级下你的依赖包。

    img

    我的python版本:Python 3.12.0
    编辑器版本:PyCharm 2023.2.5 (Professional Edition)

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?