Python数组添加链接后遍历访问异常:代码问题求助
搞定这个链接访问问题的方法啦!
你遇到的问题其实很明确:x.absolute_links返回的不是单个字符串链接,而是一个**集合(set)**类型的数据。你直接把这个集合塞进links数组里,后面遍历的时候传给HTMLSession().get()的是集合对象,而这个方法只认字符串格式的URL,所以肯定没法正常工作啦。
具体怎么改?
- 从
absolute_links这个集合里把真正的URL字符串取出来——每个.index-episode-caption元素应该只对应一个链接,所以我们只要拿集合里的那个唯一元素就行 - 把字符串形式的URL添加到
links数组,而不是集合本身
改好的完整代码:
import requests from requests_html import HTMLSession import sys links = [] base_link = "http://tvil.me" pagedata = HTMLSession().get(base_link) info = pagedata.html.find('#page-right', first=True) sidra = info.find(".index-episode-caption") for x in sidra: # 从集合里提取唯一的URL字符串 # 用next(iter(...))来获取集合里的第一个(也是唯一一个)元素 episode_link = next(iter(x.absolute_links)) links.append(episode_link) for i in links: print(i) # 现在可以正常访问链接啦 page = HTMLSession().get(i) # 接下来就可以处理你的xpath逻辑了 # print(page.xpath("..."))
额外提醒:
要是担心某些元素可能没有链接(也就是absolute_links是空集合),可以加个判断避免报错:
if x.absolute_links: episode_link = next(iter(x.absolute_links)) links.append(episode_link)
内容的提问来源于stack exchange,提问作者kaki
相关产品推荐
相关产品推荐

