如何在 bash 脚本中从 www.meinfluessiggas.de 检索价格信息?

如何在 bash 脚本中从 www.meinfluessiggas.de 检索价格信息?

https://www.meinfluessiggas.de用户必须点击水箱尺寸按钮(“Behältergröße”部分)并填写邮政编码(“PLZ Behälterstandort”部分),价格才会显示在右侧。我想在bash脚本中自动执行此操作,但很难检索正确的信息:

wget https://www.meinfluessiggas.de

正确加载页面源,但不包含价格信息。我发现有一些javascript函数可以加载价格信息,所以按照以下方法SU:支持 js 的命令行浏览器我试过

phantomjs save_page.js https://www.meinfluessiggas.de > page.html

它检索包括一些价格信息的源代码,但不幸的是,仅针对最小的水箱尺寸,默认情况下选择该按钮。

假设

tank=2700 # or 1.2, or 12, whatever is the simplest
postal=88448

如何在bash脚本中从该网站检索价格信息?

答案1

通过仔细检查源代码,我能够确定 javascript 函数获取价格信息的来源:

<div class="options__field options__field--zip select-12">
  <label>PLZ <span class="small">Behälterstandort</span></label>
  <div class="input-box">
    <select name="options[4066]" id="select_4066"
      class=" product-custom-option" title="" data-placeholder="Ihre PLZ"
      data-url="https://www.meinfluessiggas.de/dfg/index/index/size/1.2/?v=1.1"
      data-size="12" data-chosentype="zip" onchange="opConfig.reloadPrice()">
      <option value="">Lädt...</option>
    </select>
  </div>
</div>

这里有趣的部分是:

data-url="https://www.meinfluessiggas.de/dfg/index/index/size/1.2/?v=1.1"

只需使用 即可从该 url 获取价格列表wget,并结合问题中的变量:

$ tank=1.2
$ postal=88448
$ wget -qO- https://www.meinfluessiggas.de/dfg/index/index/size/$tank | sed 's/.*"\([^"]*\)" >'$postal'.*/\1/'
0.4049

在 URL 中我省略了,/?v=1.1因为它似乎没有改变任何东西(针对 0.1 到 4.9 进行了测试)。

相关内容