【发布时间】:2017-05-29 04:28:56
【问题描述】:
我正在尝试创建一个检查开放课程的机器人,该网页使用在访问该网站时设置的 cookie。但是我似乎无法通过我的代码使用请求/会话来复制它。
它应该做什么:
问题:
- 我可以创建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、使用 session.post(url)、使用无会话等。
如何让 python 加载第二页?
谢谢!
【问题讨论】:
-
你应该分析浏览器会话发送的 HTTP 请求,看看你缺少什么
-
我认为您需要向 urlWithSearchTerms 发送 GET 而不是 POST。另外,我根本不明白为什么你甚至需要一个 cookie。我可以在不发送任何 cookie 的情况下点击 urlWithSearchTerms 并获得搜索结果。
-
@corey 那是用浏览器吗?如果是这样,当您删除 cookie 并重试时,它不会加载搜索结果 urlWithSearchTerms
-
尝试get而不是post
-
@corey 非常感谢,辛苦了!
标签: python python-requests session-cookies