J'ai du mal à gratter le contenu d'une page Web.
Pour expliquer cela, voici mon code Python :
response = requests.post('http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=1&block=733&lot=66',{'User-Agent' : 'Mozilla/5.0'})
Cela me donne une page HTML contenant un formulaire (ne contenant pas la page finale):
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
</head>
<body>
<form name="bbldata" action="https://a836-acris.nyc.gov/DS/DocumentSearch/BBLResult" method="post">
<input type="hidden" name="hid_borough" value="1"/>
<input type="hidden" name="hid_borough_name" value="MANHATTAN / NEW YORK" />
<input type="hidden" name="hid_block" value="733"/>
<input type="hidden" name="hid_block_value" value="733"/>
<input type="hidden" name="hid_lot" value="66"/>
<input type="hidden" name="hid_lot_value" value="66"/>
<input type="hidden" name="hid_unit" value=""/>
<input type="hidden" name="hid_selectdate" value=""/>
<INPUT TYPE="HIDDEN" NAME="hid_datefromm" VALUE="">
<INPUT TYPE="HIDDEN" NAME="hid_datefromd" VALUE="">
<INPUT TYPE="HIDDEN" NAME="hid_datefromy" VALUE="">
<INPUT TYPE="HIDDEN" NAME="hid_datetom" VALUE="">
<INPUT TYPE="HIDDEN" NAME="hid_datetod" VALUE="">
<INPUT TYPE="HIDDEN" NAME="hid_datetoy" VALUE="">
<input type="hidden" name="hid_doctype" value=""/>
<input type="hidden" name="hid_doctype_name" value="All Document Classes"/>
<input type="hidden" name="hid_max_rows" value="10"/>
<input type="hidden" name="hid_page" value="1" />
<input type="hidden" name="hid_ReqID" value=""/>
<input type="hidden" name="hid_SearchType" value="BBL"/>
<input type="hidden" name="hid_ISIntranet" value="N"/>
<input type="hidden" name="hid_sort" value=""/>
</form>
<script language="JavaScript">
document.bbldata.submit();
</script>
</body>
</html>
Cependant, si dans le navigateur vous entrez cette URL, vous obtenez finalement cette page Web après le chargement du script dans le code HTML, et cela doit être gratté :
Toute aide serait appréciée!
Le tableau HTML de votre exemple montre les données que vous devez publier. Comme je pense que vous le savez, l'URL que vous utilisez est en fait le référent . Donc, vous devez :
# 1. Create a payload
payload = {
'hid_borough': 1,
'hid_borough_name': 'MANHATTAN / NEW YORK',
'hid_block': 733,
'hid_block_value': 733,
'hid_lot': 66,
'hid_lot_value': 66,
'hid_doctype_name': 'All Document Classes',
'hid_max_rows': 10,
'hid_page': 1,
'hid_SearchType': 'BBL',
'hid_ISIntranet': 'N'
}
# 2. Add the correct referer to your headers
header = {'User-Agent': 'Mozilla/5.0',
'referer': 'http://a836-acris.nyc.gov/bblsearch/bblsearch.asp?borough=1&block=733&lot=66'}
# 3. Add payload and headers to the post
redirect = 'https://a836-acris.nyc.gov/DS/DocumentSearch/BBLResult'
result = requests.post(redirect, data=payload, headers=header)
print result.url
https://a836-acris.nyc.gov/DS/DocumentSearch/BBLResult
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots