我正在尝试编写一些内容,以转到链接,然后在该页面上找到所有锚点链接,返回第三个锚点链接,然后导航至该第三个链接。我希望它这样做四次。
我可以得到代码来告诉我第一页上的第三个链接,但是我无法获取它来导航到该链接并重复该过程。我知道链接已正确存储在新变量中。
我认为差异是由于new_url的格式。可能是因为它是一个字符串,或者新链接的周围没有引号。我试图将其周围的引号连接起来,但是http类型却出现错误。我也尝试使用urllib quote和quote_plus模块,但这也会返回错误。我也尝试了encode(),但是那也不起作用。
有人可以帮助我理解为什么此代码无法导航到我标识的链接吗?
import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
count_a = 0
count_b = 0
names = list()
while count_a < 4:
if count_a == 0:
url = 'http://blahblah.html'
else:
url = new_url
html = urllib.request.urlopen(url)
soup = BeautifulSoup(html, 'html.parser')
tags = soup('a')
for tag in tags:
while count_b < 3:
print(tag)
count_b += 1
if count_b == 3:
strtag = str(tag)
linkstart = strtag.find('http')
linkend = strtag.find('html')
namestart = strtag.find('>')
nameend = strtag.find('<',namestart)
new_url = strtag[linkstart:linkend+4]
names.append(strtag[namestart+1:nameend])
break
count_a += 1
我对编码非常陌生。我上周刚开始学习Python,因此请原谅简单而优雅的代码。另外,如果您将答案保持简单并提供大量解释,我将不胜感激。