Использование Python Beautifulsoup для сбора данных из LinkedIn - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь экспортировать имена своих контактов в LinkedIn с помощью модуля python beautifulsoup.мой код ниже:

import requests
from bs4 import BeautifulSoup

client = requests.Session()

HOMEPAGE_URL = 'https://www.linkedin.com'
LOGIN_URL = 'https://www.linkedin.com/uas/login-submit'
CONNECTIONS_URL = 'https://www.linkedin.com/mynetwork/invite-connect/connections/'

html = client.get(HOMEPAGE_URL).content
soup = BeautifulSoup(html, "html.parser")
csrf = soup.find(id="loginCsrfParam-login")['value']

login_information = {
    'session_key':'username',
    'session_password':'password',
    'loginCsrfParam': csrf,
}
try:
    client.post(LOGIN_URL, data=login_information)
    print "Login Successful"
except:
    print "Failed to Login"

html = client.get(CONNECTIONS_URL).content
soup = BeautifulSoup(html , "html.parser")
print soup.find_all('div', attrs={'class' : 'mn-connection-card__name'})

, но проблема в том, что я всегда получаю пустой список.как ниже:

Login Successful
[]

Структура HTML выглядит следующим образом:

<span class="mn-connection-card__name t-16 t-black t-bold">
      Sombody's name
    </span>

Я думаю, что я должен изменить свой метод soup.x.Я использовал find, select, find_all, но мне не удалось.

Спасибо

1 Ответ

0 голосов
/ 28 февраля 2019

Если вы пытаетесь извлечь имя, все, что вам нужно, это

from bs4 import BeautifulSoup
soup = BeautifulSoup(html , "html.parser")
target = soup.find_all('span', attrs={'class' : 'mn-connection-card__name'})
target[0].text.strip()

Вывод

"Sombody's name"
...