Python 以下链接使用美丽的汤?

Python 以下链接使用美丽的汤?,python,Python,所以我刚刚开始使用Coursera在线课程“python for Everyone”学习python,我有一个作业,我必须使用beautiful soup跟踪链接。我以前看到这个问题突然出现,但当我尝试使用它时,它就是不起作用。我成功地创建了一些东西,但这些东西实际上并没有通过链接,而是停留在同一个页面上。如果可能的话,是否有人能提供能更好地理解这项任务的材料?谢谢 import urllib.request, urllib.parse, urllib.error from bs4 import

所以我刚刚开始使用Coursera在线课程“python for Everyone”学习python,我有一个作业,我必须使用beautiful soup跟踪链接。我以前看到这个问题突然出现,但当我尝试使用它时,它就是不起作用。我成功地创建了一些东西,但这些东西实际上并没有通过链接,而是停留在同一个页面上。如果可能的话,是否有人能提供能更好地理解这项任务的材料?谢谢

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 - ')
cnt = input("Enter count -")
count = int(cnt)
pn = input("Enter position -")
position = int(pn)-1

while count > 0:
    html = urllib.request.urlopen(url, context=ctx).read()
    soup = BeautifulSoup(html, "html.parser")
    tags = soup('a')
    lst = list()
    for tag in tags:
        lst.append(tag.get('href', None))
    indxpos = lst[position]
    count = count - 1
    print("Retrieving:", indxpos)

无论如何,您没有与代码中的超链接列表交互的函数。
它将只打印“lst”列表的内容,但不会对其进行任何处理。

您从未将
url
设置为新的url

计数>0时:
html=urllib.request.urlopen(url,context=ctx).read()#获取url处的页面
...
对于标记中的标记:
lst.append(tag.get('href',None))#将所有链接附加到lst
indxpos=lst[位置]
计数=计数-1
打印(“检索:”,indxpos)
#lst会怎么样??你从不使用它
您可能应该用url替换indxpos

计数>0时:
html=urllib.request.urlopen(url,context=ctx).read()#获取url处的页面
...
对于标记中的标记:
lst.append(tag.get('href',None))#将所有链接附加到lst
url=lst[位置]
计数=计数-1
打印(“检索:”,url)
这样,下次循环运行时,它将获取新的URL


另外:如果页面没有
pn
链接(例如,pn=12,页面有2个链接),如果您尝试访问
lst[position]
,您将遇到一个异常,因为lst的元素少于
pn

OP此处使用Python的urllib库与网页交互,而不是浏览器。只有一次他调用urlopen()在一个URL上,他从中获取超链接。代码与超链接之间没有交互作用。是的,也许您应该更改答案中的措辞,以避免使用浏览器,从而避免任何潜在的混淆。你说OP不与链接交互是对的。天哪,你是个救命恩人。由于某种原因,我豌豆大小的大脑无法注意到这一点并修复它。谢谢!