从需要登录的页面中抓取数据

时间:2016-08-01 18:32:37

标签: python cookies login web-scraping beautifulsoup

我是Python和Web Scapping的新手,我正在尝试编写一个非常基本的脚本,该脚本将从登录后只能访问的网页获取数据。我看了一堆不同的例子但没有修复问题。这就是我到目前为止所做的:

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()

截至目前,当我打印页面时,它只是打印页面的内容,好像我没有登录。我认为这个问题与我设置cookie的方式有关但我真的不确定因为我不完全了解cookie处理器及其库的情况。 谢谢!

当前代码:

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()

1 个答案:

答案 0 :(得分:1)

您可以使用requests模块。

看一下我在下面链接的答案。

https://stackoverflow.com/a/8316989/6464893

相关问题