Py4E指定链接遍历任务求解及解决方案分享
解决链接遍历任务:重复定位第18个链接7次获取最终姓氏
任务说明
从指定起始链接开始,每次找到页面中第18个链接(第一个链接计数为1)并访问,重复此操作7次,最终页面对应的姓氏即为答案。
起始链接:http://py4e-data.dr-chuck.net/known_by_Kristie.html
提示:最终页面名称首字符有指定限制(原提示未给出具体字符,按要求保留)
实现代码
我用Python完成了这个任务,结合requests处理HTTP请求、BeautifulSoup解析HTML,代码如下:
import requests from bs4 import BeautifulSoup # 初始链接 current_url = "http://py4e-data.dr-chuck.net/known_by_Kristie.html" # 需要重复的次数和目标链接位置 loop_count = 7 target_link_index = 18 # 计数从1开始,所以列表索引要减1 for _ in range(loop_count): # 获取页面响应 resp = requests.get(current_url) # 解析HTML内容 soup = BeautifulSoup(resp.text, "html.parser") # 提取所有<a>标签的链接 all_links = [link.get("href") for link in soup.find_all("a")] # 更新为目标链接(索引=目标位置-1) current_url = all_links[target_link_index - 1] # 从最终链接中提取姓氏:链接格式为...known_by_XXX.html,拆分后取XXX部分 final_last_name = current_url.split("_")[-1].split(".")[0] print(f"最终得到的姓氏:{final_last_name}")
代码逻辑说明
- 借助
requests库发起GET请求,获取目标页面的HTML内容 - 用
BeautifulSoup解析HTML,筛选出所有<a>标签并提取其href属性 - 循环7次,每次将当前访问的链接更新为页面中的第18个链接
- 最后通过字符串拆分操作,从最终链接的文件名中提取出目标姓氏
内容的提问来源于stack exchange,提问作者Hoangf Vox
相关产品推荐
相关产品推荐

