
존재하다https://www.meinfluessiggas.de사용자는 탱크 크기 버튼("Behältergröße" 섹션)을 클릭하고 우편번호("PLZ Behälterstandort" 섹션)를 입력해야 오른쪽에 가격이 표시됩니다. bash
스크립트에서 이를 자동화 하고 싶지만 올바른 정보를 검색하는 데 문제가 있습니다.
wget https://www.meinfluessiggas.de
페이지 소스가 올바르게 로드되지만 가격 정보가 포함되어 있지 않습니다. 가격 정보를 불러올 수 있는 자바스크립트 함수가 있다는 것을 알게 되었는데, 다음과 같습니다.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"
wget
질문의 변수와 결합된 해당 URL에서 가격 목록을 가져오는 데 사용하세요 .
$ tank=1.2
$ postal=88448
$ wget -qO- https://www.meinfluessiggas.de/dfg/index/index/size/$tank | sed 's/.*"\([^"]*\)" >'$postal'.*/\1/'
0.4049
/?v=1.1
URL에서는 아무 것도 변경되지 않은 것 같아서 생략했습니다 (0.1에서 4.9까지 테스트됨).