Python:使用GET请求

时间:2015-04-27 22:48:51

标签: python-3.x web-scraping

我正在使用python 3.4.3,我正在尝试使用请求登录OKCupid。

我的代码返回的页面是初始登录页面,而不是用户在成功登录后会看到的页面。我尝试在这里查看几个答案和其他教程,其中大部分都指导我检查开发人员选项卡并使用方法“POST”查看请求,但我没有看到任何此类请求。

相反,我看到“GET”请求,我不确定请求如何处理这些请求。我尝试了许多不同的方法,但都没有奏效。这是我的简单代码:

import requests
from bs4 import BeautifulSoup

user='USERNAME'
pw='PASSWORD'
url='http://www.okcupid.com/login'

session=requests.session()

values = {'login_username':user, 'login_password':pw}
r = session.post(url,data=values)
soup = BeautifulSoup(r.content)
pSoup = BeautifulSoup.prettify(soup)

print(soup.title.string)

1 个答案:

答案 0 :(得分:2)

我能够弄清楚。如果这对将来的某个人有帮助:有两件事阻止我以前的代码工作:

  1. 我需要指定' https'而不是' http'在网址中。
  2. 我错过了一个' okc_api'值向量中的值。我以前没有检测到这一点,因为Chrome的开发人员工具没有"保留日志"检查。因此,Chrome正在删除登录信息" POST"在我查看"表格数据之前请求#34;值。
  3. 以下是修订后的代码:

    import requests
    from bs4 import BeautifulSoup
    
    user='USERNAME'
    pw='PASSWORD'
    url='https://www.okcupid.com/login'
    
    session=requests.session()
    
    values = {'username': user, 'password': pw, 'okc_api': '1'}
    session.post(url, data=values)
    page = session.get('http://www.okcupid.com/')
    
    soup = BeautifulSoup(page.content)
    print(soup.title.string)
    
    session.close()