Python请求,如何执行多个POST操作

Python请求,如何执行多个POST操作,python,python-3.x,web-scraping,python-requests,screen-scraping,Python,Python 3.x,Web Scraping,Python Requests,Screen Scraping,我使用python3.2和请求库的最新版本。当我对登录到端点的用户执行第一次HTTP POST时,我成功登录。现在我想在登录后发布一些数据。当我执行第二篇文章时,我得到了一个有效的答案(200 OK),但第二篇文章操作的响应重定向URL是example.com/index。通常它应该是example.com/my account,但当我刷新浏览器以查看它时,没有任何更改 这是我的密码: import sys import requests from lxml import etree from

我使用
python3.2
请求库的最新版本。当我对登录到端点的用户执行第一次HTTP POST时,我成功登录。现在我想在登录后发布一些数据。当我执行第二篇文章时,我得到了一个有效的答案(
200 OK
),但第二篇文章操作的响应重定向URL是
example.com/index
。通常它应该是
example.com/my account
,但当我刷新浏览器以查看它时,没有任何更改

这是我的密码:

import sys
import requests
from lxml import etree
from bs4 import BeautifulSoup
from furl import furl
#get user compenent
mail="thoryn.hiroshi@lcelandic.com"
password="333"
url = 'https://example.com/login.php'

#make the requests in one session
with requests.session() as client:
# Retrieve the CSRF(sid) token first
tree = etree.HTML(client.get(url).content)
csrf = tree.xpath('//input[@name="_sid"]/@value')[0]

#form data
formData = dict(_sid=csrf, email=mail,pwd=password,process="login")

#use same session client
r = client.post(url, data=formData)
idurl=r.url
print( r.request.headers)
g=client.get(idurl)

# this for scrape site html data, i guess isn't matter with requests problem
soup = BeautifulSoup(g.text, 'html.parser')
adispo=soup.find_all('a', attrs={"class":"dispo"})
i=0
datalist=[]

for i in range(0,len(adispo)):
    linkajax=adispo[i]['onclick']
    parsedlink= linkajax[30:247]
    temp=furl(parsedlink)
    data={
        "timestamp":temp.args['timestamp'],
        "skey":temp.args['skey'],
        "id":temp.args['fg_id'],
        "time":temp.args['result']
    }
    datalist.append(data)

# print(rdvlist,len(rdvlist))
getdata=datalist[0]
posturl='https://example.com/action.php'
datapayload={
    "data name":"data"
}

secondpost=client.post(posturl,data=datapayload)
print(secondpost.reason, secondpost.url)

如果您想让它成为一个可重用的程序,用于验证多个请求响应,那么您需要对其进行结构化以处理对象。将其包装为三个函数,一个用于发送HTTP请求,一个用于处理HTTP响应,另一个用于从HTTP响应DOM中删除属性。然后,您可以将函数包装成一个循环,并从URL列表中多次执行主脚本


这里有一个很好的入门参考:

我应该使用scrapy module?@MomoSetti它将帮助您完成您的任务,是的。