使用Python发送backtoback POST请求

2024-09-19 23:36:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python脚本来从这个链接中获取数据:http://emma.msrb.org/MarketActivity/RecentOS.aspx。我已经将我的脚本配置为绕过确认页面(使用cookie),并且我已经了解了如何使用POST请求来访问“所有新问题”,而不是默认的“今天”,但是现在我需要遍历所有19个页面。在

POST请求看起来像这样:ctl00$gridViewPagingUserControl$page2LinkButton,但是使用它并不能满足我的需要。在

我使用的是Python请求模块,但我也尝试过使用urllib/urllib2,但这似乎也不起作用。在

基本上,我如何发送多个/背靠背的POST请求来访问我需要的页面?在

下面是我的示例代码。使用post_requests_1工作正常,但post_requests_2则不行。在

# Cookies
cp = urllib2.HTTPCookieProcessor()
cj = cp.cookiejar
cj.set_cookie(cookielib.Cookie(0, 'Disclaimer', '247245968.1342815275.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)', '80', False, '.emma.msrb.org', True, False, '/', True, False, None, False, None, None, None))

post_requests_1 = { r'__EVENTTARGET' : r'ctl00$mainContentArea$allNewIssuesLinkButton', r'__EVENTARGUMENT' : r'' }
post_requests_2 = { r'__EVENTTARGET' : r'ctl00$mainContentArea$gridViewPagingUserControl$page2LinkButton', r'__EVENTARGUMENT' : r'' }
html = requests.post('http://emma.msrb.org/MarketActivity/RecentOS.aspx', data = post_requests_1, cookies = cj)
print html.text.encode('utf-8')

Tags: org脚本nonefalsehttp页面postrequests