2016-05-08 2 views
-1
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) 

когда я исполню его, я получаю эту ошибку:AttributeError: объект 'ParseResult' не имеет атрибут 'идентификатор'

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

Что вы ожидали от возвращения вместо этого? –

ответ

0

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] 
Смежные вопросы