Ich bin neu in Python und Web Scapping und ich versuche, ein sehr einfaches Skript zu schreiben, das Daten von einer Webseite erhält, die nur nach dem Einloggen zugegriffen werden kann. Ich habe angeschaut Eine Reihe verschiedener Beispiele, aber keine beheben das Problem. Das ist, was ich habe, so weit:.Scrape Daten von einer Seite, die ein Login benötigt
from bs4 import BeautifulSoup
import urllib, urllib2, cookielib
username = 'name'
password = 'pass'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'password' : password})
opener.open('WebpageWithLoginForm')
resp = opener.open('WebpageIWantToAccess')
soup = BeautifulSoup(resp, 'html.parser')
print soup.prettify()
Ab jetzt wenn ich die Seite zu drucken druckt nur den Inhalt der Seite, als ob ich nicht angemeldet war Ich denke, das Problem etwas mit dem zu tun, So stelle ich die Cookies ein, aber ich bin mir nicht sicher, weil ich nicht ganz verstehe, was mit dem Cookie-Prozessor und seinen Bibliotheken passiert. Vielen Dank!
Aktuelle Code:
import requests
import sys
EMAIL = 'usr'
PASSWORD = 'pass'
URL = 'https://connect.lehigh.edu/app/login'
def main():
# Start a session so we can have persistant cookies
session = requests.session(config={'verbose': sys.stderr})
# This is the form data that the page sends when logging in
login_data = {
'username': EMAIL,
'password': PASSWORD,
'LOGIN': 'login',
}
# Authenticate
r = session.post(URL, data=login_data)
# Try accessing a page that requires you to be logged in
r = session.get('https://lewisweb.cc.lehigh.edu/PROD/bwskfshd.P_CrseSchdDetl')
if __name__ == '__main__':
main()
Mögliche Duplikat [Anmeldung zur Website mit Python] (http://stackoverflow.com/questions/8316818/login-to-website-using-python) – Harrison