有一个 Internet 站点,我想检查自上次我检查更改后,此 Internet 站点中的搜索结果是否发生更改。
该网站有 2 个需要填写的请求字段(例如“出生日期”和“从何时开始”),然后它给出了在给定年份和那个地方被烧伤的所有孩子的结果。
我想使用 python 检查查询结果的变化,然后向我发送一封电子邮件,说明发生了变化。
我应该使用哪个 python 工具将我感兴趣的值发送到 Internet 站点并解析结果?
这是我需要填写的字段部分:
<fieldset class="set1 required">
<label for="">Wann wurde Ihr Kind geboren? *</label>
<input name="tbGeburtsdatum" id="tbGeburtsdatum" class="datepickerGeburt hasDatepicker" maxlength="10" onblur="this.value = formatiereDatum(this.value)" type="text">
<small class="errormessage">Bitte geben Sie ein gültiges Datum ein</small>
<span id="infoGeburt" class="legende"></span>
</fieldset>
<fieldset class="set2 required">
<label for="">Ab wann soll Ihr Kind betreut werden? *</label>
<input name="tbBetreuungAb" id="tbBetreuungAb" class="datepickerVon hasDatepicker" maxlength="10" onblur="this.value = formatiereDatum(this.value)" type="text">
<small class="errormessage">Bitte geben Sie ein gültiges Datum ein</small>
</fieldset>
<fieldset class="set3 optional">
<label for="">Bis wann soll Ihr Kind betreut werden?</label>
<input name="tbBetreuungBis" id="tbBetreuungBis" class="datepickerBis hasDatepicker" maxlength="10" onblur="this.value = formatiereDatum(this.value)" type="text">
</fieldset>
编辑
我写了一个填写两个字段的代码:
import mechanize
import cookielib
from BeautifulSoup import BeautifulSoup
import html2text
import filecmp
# Browser
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Browser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# The site we will navigate into, handling it's session
br.open('https://www.meinkitaplatz-leipzig.de/')
# Select the first (index zero) form
br.select_form(nr=0)
# User credentials
br.form['tbGeburtsdatum'] = '01.12.2011'
br.form['tbBetreuungAb'] = '26.09.2012'
# Login
br.submit()
br.retrieve('https://www.meinkitaplatz-leipzig.de/WFSuche.aspx','yourfavoritepage_new.html')
print filecmp.cmp('yourfavoritepage_new.html', 'yourfavoritepage.html')
编辑 2
</tbody></table><table id="gvXErgebnisListe_DXMainTable" class="dxgvTable_EpErgebnisGrid" summary="<script language="javascript" type="text/javascript">var geoData = new Array("1|2| |0|0|6d96147a-641f-4411-8331-4436cd405c99|FAIRbund TPP3|Nord");var geoDataGes = new Array("1|2| |0|0|6d96147a-641f-4411-8331-4436cd405c99");</script>" style="width: 100%; border-collapse: collapse; empty-cells: show;" border="0" cellpadding="0" cellspacing="0">
<tbody><tr id="gvXErgebnisListe_DXDataRow0" class="dxgvDataRow_EpErgebnisGrid">
<td id="gvXErgebnisListe_tcrow0" colspan="17" style="border-right-width: 0px; border-bottom-width: 0px;">
<div class="resultlistEntry" id="resultlistEntry1">
<div class="resultlistHead" id="1">
<a class="linkTitle" href="#" onclick="return false;">
<strong>Nord, FAIRbund TPP3</strong>
<small>
<strong> Vorschlag: 26.09.2012 - 30.11.2014</strong>
</small>
</a>
<a class="linkMappin" href="#" onclick="jumpToLocation(new Array('1','0','0', 'FAIRbund TPP3', 'Nord'));" title="Auf der Karte zeigen" alt="Auf der Karte zeigen">
<span class="mappin mappin-tpp-klein"></span>
</a>
</div>
<div style="display: none;" class="resultlistContent" id="resultlistContent1">
<p>
Die Tagespflegeperson FAIRbund TPP3 befindet sich im Stadtbezirk Nord. Hier werden bis zu 5 Kinder betreut.
</p>
<p class="clearfix">
<input name="Details1" id="Details1" class="buttonGeneralForward" value="Details" type="submit">
</p>
</div>
</div>
</td>
</tr>
我想解析这个 html 文本表 "Nord, FAIRbund TPP3", "Vorschlag: 26.09.2012 - 30.11.2014"
并将结果保存到文件中。
完整的 html 文件可以在yourfavoritepage_new.html找到。