【问题标题】:AttributeError: 'ParseResult' object has no attribute 'id'AttributeError:“ParseResult”对象没有属性“id”
【发布时间】:2016-05-08 21:39:07
【问题描述】:
def getPeopleLinks(page):
    links = []
    for link in page.find_all('a'):
        url = link.get('href')
        if url:
            if 'profile/view?id=' in url:
                links.append(url)
    return links

def getID(url):
    pUrl = urlparse(url)
    return pUrl.id

从下方执行

people = getPeopleLinks(page)
if people:
    for person in people:
        ID = getID(person)

当我执行它时,我得到了这个错误:

   return pUrl.id
AttributeError: 'ParseResult' object has no attribute 'id'

【问题讨论】:

  • 您期望返回的是什么?

标签: python python-3.x url attributeerror urlparse


【解决方案1】:

urlparse() 函数不会将查询字符串解析为键值对;它只返回 URL 的组成部分(包括查询字符串部分,还包括方案、主机名、片段标识符等)。

您需要在从 URL 中提取查询字符串后解析它;使用urllib.parse.parse_qs() function:

from urllib.parse import parse_qs, urlparse

def getID(url):
    query_string = urlparse(url).query
    return parse_qs(query_string)['id'][0]

【讨论】:

    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2019-05-23
    • 1970-01-01
    • 2012-12-01
    • 2021-04-19
    • 2021-11-22
    相关资源
    最近更新 更多