import urllib.request,urllib.parse,urllib.error
from bs4 import BeautifulSoup
import ssl
# Ignore SSL certificate errors
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
urlname = input('Enter URL:')
count=input('Enter count:')
pos=input('Enter position:')
count=int(count)
pos=int(pos)
urls=list()
for times in range(count+1):
print('Retrieving:', urlname)
respon = urllib.request.urlopen(urlname, context=ctx)
html = respon.read()
soup = BeautifulSoup(html, 'html.parser')
tags = soup('a')
for tag in tags:
urls.append(tag.get('href',None))
urlname=urls[pos-1]
本意是输入一个URL,然后读取该URL下的第pos个URL,重复该行为count次。
在循环体里面,urlname虽然变了,但是respon = urllib.request.urlopen(urlname, context=ctx)似乎并没有受到影响。。尝试每次都适用close()来关闭也没变化。。。是不是我的理解有问题。。麻烦各位大大帮忙看下。。。初学者。。有点懵。。
你的
pos
变量有变过吗?pos不变,urls[pos-1]也不会变,因为urls是向后追加元素,前几个元素还是不变的。