python重定向如何多次跳转

题目描述

在这个链接中,点击第三个超链进入一个类似页面,再点击第三个超链进入一个类似页面,进行4次。看第四次页面中第三个超链的名字是什么。
http://py4e-data.dr-chuck.net...

题目来源及自己的思路

我只能把第一个页面的超链都抓下来,但是如何跳转

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

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 - ')
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')

tags = soup('a')
for tag in tags:

print(tag.get('href', None))

我们老师有以下提示,但我不知道怎么用。
$ python3 solution.py
Enter URL: http://py4e-data.dr-chuck.net...
Enter count: 4
Enter position: 3
Retrieving: http://py4e-data.dr-chuck.net...
Retrieving: http://py4e-data.dr-chuck.net...
Retrieving: http://py4e-data.dr-chuck.net...
Retrieving: http://py4e-data.dr-chuck.net...
Retrieving: http://py4e-data.dr-chuck.net...

你期待的结果是什么?实际看到的错误信息又是什么?

完全没思路。期待大神拯救!

阅读 3.3k
1 个回答

就按照题目的意思把代码写下来好了,用while

In [22]: import requests

In [23]: from bs4 import BeautifulSoup

In [24]: def return_url(url, loop_count, link_count):
    ...:     i = 0
    ...:     while i < loop_count:  # 循环次数
    ...:         r = requests.get(url)
    ...:         data = r.text
    ...:         soup = BeautifulSoup(data)
    ...:         count = 0
    ...:         for link in soup.find_all('a'):
    ...:             count += 1
    ...:             if count == link_count: # 第几个链接
    ...:                 url = link.get('href',None)
    ...:                 break
    ...:         i += 1
    ...:     return url
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题