В инструментах Chrome Dev данные формы выглядят следующим образом:
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="hostURL"
http://oris.co.palm-beach.fl.us/or_web1/
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pdfPath"
\\wcp01zfs-03.clerk.local\files2\ORISPDF\
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pdfURL"
http://oris.co.palm-beach.fl.us/pdf/
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pages"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="id"
22591587
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="mpages"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="doc_id"
22591587
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="page1"
image_from_file.asp?imageurl=\\ors_fs\ORImage\O\30338\O.30338.0268.0001.tif
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="WaterMarkText"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH--
, когда я копирую их в оболочку scrapy для отладки запроса, некоторые символы выглядят по-разному, и в результате (я полагаю) ошибка возврата запроса,Вот как это выглядит в scrapy (python 3).
Как правильно использовать форм-данные в моем запросе Scrapy?
Вот моя выдержка из кода Scrapy:
def get_image(self, response):
# inspect_response(response, self)
url = 'http://oris.co.palm-beach.fl.us:8080/PdfServlet/PdfServlet27'
headers = {
'origin': "http://oris.co.palm-beach.fl.us",
'upgrade-insecure-requests': "1",
'dnt': "1",
'content-type': "multipart/form-data; boundary=----WebKitFormBoundarysGRfL8zMeuSs4zsH",
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36",
'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
'cache-control': "no-cache",
}
id = response.xpath("//input[@name='doc_id']/@value").extract_first()
body = '''------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="hostURL"
http://oris.co.palm-beach.fl.us/or_web1/
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pdfPath"
\\wcp01zfs-03.clerk.local\files2\ORISPDF\
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pdfURL"
http://oris.co.palm-beach.fl.us/pdf/
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="pages"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="id"
{}
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="mpages"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="doc_id"
{}
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="page1"
image_from_file.asp?imageurl=\\ors_fs\ORImage\O\30338\O.30338.0268.0001.tif
------WebKitFormBoundarysGRfL8zMeuSs4zsH
Content-Disposition: form-data; name="WaterMarkText"
1
------WebKitFormBoundarysGRfL8zMeuSs4zsH--'''.format(id, id)
r = scrapy.Request(url, method="POST", headers = headers, body = body, callback = self.get_pdf, dont_filter = True)
yield r
А вот форма, которую я пытаюсь имитировать.
<td valign="bottom">
<form name="courtform" action="http://oris.co.palm-beach.fl.us:8080/PdfServlet/PdfServlet27" method="post" enctype="multipart/form-data">
<input type="hidden" name="hostURL" value="http://oris.co.palm-beach.fl.us/or_web1/" size="60">
<input type="hidden" name="pdfPath" value="\\wcp01zfs-03.clerk.local\files2\ORISPDF\" size="60">
<input type="hidden" name="pdfURL" value="http://oris.co.palm-beach.fl.us/pdf/" size="60">
<input type="hidden" name="pages" value="1" size="60">
<!--<input type="hidden" name="pages" value="1" size="60">-->
<input type="hidden" name="id" value="22590889" size="60">
<input type="hidden" name="mpages" value="1" size="60">
<input type="hidden" name="doc_id" value="22590889" size="60">
<input type="hidden" name="page1" value="image_from_file.asp?imageurl=\\ors_fs\ORImage\O\30336\O.30336.1200.0001.tif" size="60">
<input type="hidden" name="WaterMarkText" value="1" size="60">
<input name="button" type="button" value="View PDF" onclick="javascript:ValidateAndSubmit(this.form)">
</form></td>