使用生成的cookie

时间:2017-01-13 17:59:33

标签: python python-requests session-cookies

我试图创建一个检查开放类的机器人,网页使用访问该网站时设置的cookie。但是我似乎无法使用我的代码的请求/会话来复制这个。

它应该做什么:

  1. 访问link 1(创建Cookie)(搜索页面)
  2. 访问link 2,其中包含网址(搜索结果)中的搜索字词
  3. 在浏览器中完成后,链接2应显示搜索结果
  4. 问题:

    • 我可以创建访问链接1的cookie
    • 但无法将其与包含搜索字词的链接2一起使用
    • 这导致加载相同的第一个链接(搜索页面)

    以下是我尝试的一些示例代码:

    s = requests.Session()
    # create the cookie using first link
    r = s.get(url)
    
    # r2 should be search results
    r2 = s.post(urlWithSearchTerms, cookies=r.cookies)
    
    # parse html etc, however loads wrong page
    data = r2.text
    soup = BeautifulSoup(data,"html.parser")
    print(soup.prettify())
    

    它不会加载搜索结果,而是加载第一页。

    我也试过包含r.headers,使用sessions.post(url),不使用会话等。

    如何让python加载第二页?

    谢谢!

1 个答案:

答案 0 :(得分:0)

您正在发送HTTP POST请求,您应该发送GET。

更改此行:

r2 = s.post(urlWithSearchTerms, cookies=r.cookies)

为:

r2 = s.get(urlWithSearchTerms, cookies=r.cookies)