输入字段名称是“日期”,而不是“值”:
<form id="dailyFekForm" name="dailyFekForm" action="/idocs-nph/search/dailyFekForm.html" method="post">
<br>
<div>
</div>
<div class="non-printable" style="padding-left:20px;">
<table>
<tr>
<td style="font-size:100%; color:#3399FF;" align="left" >
<table>
<tr>
<td valign="center" style="font-size:100%; color:#3399FF;" ><b>Ημερομηνία Κυκλοφορίας</b></td>
<td>
<img title="Επιλέξτε ημερομηνία για ημερήσια κυκλοφορία" border="0" src="/idocs-nph/images/tooltip.gif" >
</td>
</tr>
</table>
</td>
<td><input id="date" name="date" type="text" value="29.05.2017"/></td>
<td><img src="/idocs-nph/images/admin/calendar.gif" id="triggerDate"/></td>
<td><input class="save" type="submit" value="Αναζήτηση" name="search" id="search"/></td>
</tr>
</table>
你也可以检查你的浏览器将使用其开发工具:http://imgur.com/a/ztDtF(选中“表格数据”在底部)
因此,你可以使用:
scrapy.FormRequest.from_response(response,formdata={'date': "19.05.2017"})
样品使用scrapy外壳,呈现出不同的会话表行:
$ scrapy shell http://www.et.gr/idocs-nph/search/dailyFekForm.html
>>> from pprint import pprint
>>> pprint(response.css('table#result_table tr:not(.prop) td b').xpath('normalize-space()').getall())
['ΦΕΚ A 77 - 26.05.2017',
'ΦΕΚ B 1836 - 25.05.2017',
'ΦΕΚ B 1837 - 25.05.2017',
(...)
'ΦΕΚ Α.Α.Π. 112 - 25.05.2017',
'ΦΕΚ Α.Α.Π. 113 - 26.05.2017',
'ΦΕΚ Α.Α.Π. 114 - 26.05.2017',
'ΦΕΚ Α.Α.Π. 115 - 26.05.2017']
>>> fetch(scrapy.FormRequest.from_response(response,formdata={'date': "19.05.2017"}))
2017-05-29 14:42:50 [scrapy.core.engine] DEBUG: Crawled (200) <POST http://www.et.gr/idocs-nph/search/dailyFekForm.html> (referer: None) ['partial']
>>> pprint(response.css('table#result_table tr:not(.prop) td b').xpath('normalize-space()').getall())
['ΦΕΚ A 72 - 19.05.2017',
'ΦΕΚ A 73 - 19.05.2017',
'ΦΕΚ A 74 - 19.05.2017',
(...)
'ΦΕΚ Υ.Ο.Δ.Δ. 234 - 18.05.2017',
'ΦΕΚ Α.Α.Π. 105 - 16.05.2017',
'ΦΕΚ Α.Α.Π. 108 - 16.05.2017']
>>> fetch(scrapy.FormRequest.from_response(response,formdata={'date': "16.05.2017"}))
2017-05-29 14:45:53 [scrapy.core.engine] DEBUG: Crawled (200) <POST http://www.et.gr/idocs-nph/search/dailyFekForm.html> (referer: None) ['partial']
>>> pprint(response.css('table#result_table tr:not(.prop) td b').xpath('normalize-space()').getall())
['ΦΕΚ A 69 - 16.05.2017',
'ΦΕΚ B 1638 - 15.05.2017',
'ΦΕΚ B 1639 - 15.05.2017',
(...)
'ΦΕΚ Υ.Ο.Δ.Δ. 228 - 16.05.2017',
'ΦΕΚ Υ.Ο.Δ.Δ. 229 - 16.05.2017',
'ΦΕΚ Α.Α.Π. 102 - 15.05.2017']
>>>
非常感谢您的时间。这对你有用吗?我已经在Scrapy shell中试过了,当我使用视图(响应)时,它会返回相同的日期。我不应该看到改变的吗? –
它适用于我。看到我更新的答案。 –
没有使用抓取..我觉得自己像个白痴,现在我一直在寻找这个错误3天。非常感谢你,真的很感激。 –