我是网络爬虫的新手,并希望通过复制AJIAX请求来刮擦this form的结果。如何使请求传递下面的表单数据?
GOTOSTEP: 2
LANG: it
flag_ar:
trta: ISCPOZ
datea: 12/02/2019
res:
paxan: 1
paxbn: 0
paxin: 0
ad: 0
veicolo:
rimorchio:
exl:
exa:
bic: 0
bag1: 0
bag2: 0
bag3: 0
dnr: 0
trtr:
dater:
rres:
rpaxan:
pol_insurance:
Q1: 000004
Q2: 000001
Q3: GESTOUR - CALL CENTER
Q9: 0
JSON_AGE_DATA: {"STATUS":"OK","STATUS_MSG":"","Q1":"000004","Q2":"000001","Q3":"GESTOUR - CALL CENTER","ALT_CODE":0}
JSON_AGE_LISTS: {"MINICR":"MINICR","ST01AS":"ST01AS","ST01BS":"ST01BS","ST02AS":"ST02AS","ST02BS":"ST02BS","ST04BS":"ST04BS","ST05BS":"ST05BS","ST11AS":"ST11AS","ST11BS":"ST11BS","STAS":"STAS"}
B2C_ALT_CODE: 0
LOCK:
答案 0 :(得分:0)
requests
库具有post()
函数,可让您将data
作为Python字典进行传递。可以这样完成:
from bs4 import BeautifulSoup
import requests
data = {
"GOTOSTEP" : 2,
"LANG" : "it",
"flag_ar" : "",
"trta" : "ISCPOZ",
"datea": "12/02/2019",
"res" : "",
"paxan" : 1,
"paxbn" : 0,
"paxin" : 0,
"ad" : 0,
"veicolo" : "",
"rimorchio" : "",
"exl" : "",
"exa" : "",
"bic" : 0,
"bag1" : 0,
"bag2" : 0,
"bag3" : 0,
"dnr" : 0,
"trtr" : "",
"dater" : "",
"rres" : "",
"rpaxan" : "",
"pol_insurance" : "",
"Q1" : "000004",
"Q2" : "000001",
"Q3" : "GESTOUR - CALL CENTER",
"Q9" : "0",
"JSON_AGE_DATA" : '{"STATUS":"OK","STATUS_MSG":"","Q1":"000004","Q2":"000001","Q3":"GESTOUR - CALL CENTER","ALT_CODE":0}',
"JSON_AGE_LISTS" : '{"MINICR":"MINICR","ST01AS":"ST01AS","ST01BS":"ST01BS","ST02AS":"ST02AS","ST02BS":"ST02BS","ST04BS":"ST04BS","ST05BS":"ST05BS","ST11AS":"ST11AS","ST11BS":"ST11BS","STAS":"STAS"}',
"B2C_ALT_CODE" : 0,
"LOCK" : "",
}
r = requests.post("http://gestour.nefesy.com/b2c/b2c_maker.php", data=data)
soup = BeautifulSoup(r.content, "html.parser")
for ul in soup.find_all('ul'):
print([li.text for li in ul.find_all('li')])
然后可以使用BeautifulSoup
解析HTML。在这种情况下,它以<ul><li>
列表的形式返回数据表,为您提供:
['', '12/02/2019', '16:05', '1:00', 'DON PEPPINO\xa0', 'BASSISSIMA STAGIONE Ordinario', '13,70 €']
['', '12/02/2019', '19:10', '1:00', 'DON PEPPINO\xa0', 'BASSISSIMA STAGIONE Ordinario', '13,70 €']