1

有一个 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="&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;var geoData = new Array(&quot;1|2|  |0|0|6d96147a-641f-4411-8331-4436cd405c99|FAIRbund TPP3|Nord&quot;);var geoDataGes = new Array(&quot;1|2|  |0|0|6d96147a-641f-4411-8331-4436cd405c99&quot;);&lt;/script&gt;" 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找到。

4

1 回答 1

0

Mechanize 提供了一种提交表单的简单方法,请参阅http://wwwsearch.sourceforge.net/mechanize/上的示例

于 2012-05-02T12:02:12.910 回答