2014-07-22 31 views
0

我使用下面的代碼嘗試抓取頁面中的鏈接,但似乎這種方法不能讓我登錄,只是告訴我未經授權的主頁。我如何使用python-request獲取linkedin頁面?

#/usr/bin/env python3 
import requests 
from bs4 import BeautifulSoup 


payload = { 
'session-key': 'my account', 
'session-password': 'my password' 
} 

URL = 'https://www.linkedin.com/uas/login' 
s = requests.session() 
s.post(URL, data=payload) 

r = s.get('http://www.linkedin.com/nhome') 
soup = BeautifulSoup(r.text) 
print(soup) 

`

+0

檢查。 http://stackoverflow.com/questions/12751293/how-to-use-python-to-retrieve-xml-page-that-requires-http-login –

+0

@ m170897017那不適合LinkedIn的情況下,你可以試試那麼給我正確的代碼? – leafonsword

回答

0

這是比到目前爲止你有什麼更復雜。

你需要做這樣的事情:

您可以通過在網絡選項卡鉻/ Firefox的開放的開發工具和經歷的登錄過程中看到了整個過程。

像這樣的東西應該工作:

import requests 
from bs4 import BeautifulSoup 

# Get login form 
URL = 'https://www.linkedin.com/uas/login' 
session = requests.session() 
login_response = session.get('https://www.linkedin.com/uas/login') 
login = BeautifulSoup(login_response.text) 

# Get hidden form inputs 
inputs = login.find('form', {'name': 'login'}).findAll('input', {'type': ['hidden', 'submit']}) 

# Create POST data 
post = {input.get('name'): input.get('value') for input in inputs} 
post['session_key'] = 'username' 
post['session_password'] = 'password' 

# Post login 
post_response = session.post('https://www.linkedin.com/uas/login-submit', data=post) 

# Get home page 
home_response = session.get('http://www.linkedin.com/nhome') 
home = BeautifulSoup(home_response.text) 
+0

我不熟悉python,所以上面的程序對我來說太難了,你能不能嘗試給我正確的代碼? – leafonsword

+0

看到我的更新爲工作代碼 –

+0

謝謝,那作品〜 – leafonsword

相關問題