2017-01-13 69 views
1

我正在嘗試創建一個用於檢查打開的類的bot,該網頁使用訪問該站點時設置的cookie。不過,我似乎無法複製這與使用請求/會話與我的代碼。使用生成的Cookie的Python請求/會話

什麼它應該做的事:

  1. 訪問link 1(創建的cookie)(搜索頁面)
  2. 訪問link 2,其中包括在URL中的搜索字詞(搜索結果)
  3. 當完成瀏覽器,鏈接2應顯示搜索結果

問題:

  • 我可以創建cookie的訪問鏈接1
  • ,但不能使用包括搜索項
  • 這導致加載相同的第一個鏈接(搜索頁面)

下面的鏈接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

你應該分析通過瀏覽器會話發送的HTTP請求,看看你錯過了什麼 –

+0

我認爲你需要一個GET發送到urlWithSearchTerms而不是POST。另外,我不明白你爲什麼甚至需要cookie。我可以擊中urlWithSearchTerms並獲得搜索結果而不發送任何cookie。 –

+0

@corey是使用瀏覽器嗎?如果是這樣,當你刪除cookies並重試時,它不會加載搜索結果urlWithSearchTerms – user3294913

回答

0

你正在發送一個HTTP POST請求,你應該發送一個GET。

改變這一行:

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

到:

r2 = s.get(urlWithSearchTerms, cookies=r.cookies) 
相關問題