python3 url读取

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()来关闭也没变化。。。是不是我的理解有问题。。麻烦各位大大帮忙看下。。。初学者。。有点懵。。

阅读 2.5k
1 个回答

你的pos变量有变过吗?pos不变,urls[pos-1]也不会变,因为urls是向后追加元素,前几个元素还是不变的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏