XPath를 사용하여 <script> 블록을 검색 할 수 있습니까?

바이킹

모든 종류의 HTML 콘텐츠를 선택하는 데 능숙합니다. 그래서 사이트의 콘텐츠를 뜯어 내야하는 코드를 만드는 데 자신감을 갖고 소스가 가격을 책정하는 이상한 JavaScript 코드를 우연히 발견했습니다.

<script>
 var productConfig = {"attributes":{"178":{"id":"178","code":"bp_flavour","label":"Smaak","options":[{"id":"28","label":"Aardbeien","oldPrice":"0","products":["2292","2294","2296","2702"]}

.... 횡설수설이 더 많고 각 제품 변형 4 개 이상 : (이렇게 80 개의 다른 줄처럼 :)

,"childProducts":{
"2292":"price":"64.99","finalPrice":"64.99","no_of_servings":"166","178":"27","179":"34"},
"2292":"price":"17.99","finalPrice":"17.99","no_of_servings":"33","178":"28","179":"25"}
}


</script>

분명히 2292는 현재 제품의 ID입니다. "finalPrice"를 읽고 싶습니다.

내 PHP 코드 :

    $file = $this->curl_get_file_contents($url);
    $doc = new DOMDocument();
   @$doc->loadHTML($file);
    $doc->preserveWhiteSpace = false;
    $finder = new DomXPath($doc);

    $price_query = $finder->query("//script[contains(.,'finalPrice')]");
    $price_raw = $price_query->item(0)->nodeValue;

그러나 내 쿼리 //script[contains(.,"finalPrice")]는 JavaScript에서 더 깊고 구체적으로 파헤치는 방법을 찾을 수없는 전체 스크립트를 폭파합니다. 누구든지 더 알고 / 나에게 힌트를 줄 수 있습니까?

바이킹

그래서 내가 한 일은 제공된 XPATH 쿼리로 스크립트를 읽습니다. Than : 내가 원하는 json 부분을 얻을 때까지 strstr. 다음은 PHP의 json_decode 함수입니다. 내가 원하는 배열을 검색 한 것보다 배열에 넣습니다. 이것은 구문 분석을위한 내 코드입니다.

        $price_query = $finder->query("//script[contains(.,'finalPrice')]");
        $price_raw = $price_query->item(0)->nodeValue;
        $price_1 = strstr($price_raw, "childProducts");
        $price_2 = str_replace('childProducts":', '', $price_1);
        $price_3 = strstr($price_2, ',"priceFromLabel"', true);     
        $price_data = json_decode($price_3, true);

str str과 함께 쓰레기처럼 보이지만 작동합니다. 여러분의 생각에 감사드립니다. json_decode ftw!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CMD를 사용하여 Windows에서 파일을 검색 할 수 있습니까?

분류에서Dev

FBFriendPickerViewController를 사용하여 'installed'= 0을 fieldsForRequest로 검색 할 수 있습니까?

분류에서Dev

Windows 검색 엔진 (W7)을 사용하여 PHP 파일 내부를 검색 할 수 있습니까?

분류에서Dev

Siebel eScript를 사용하여 사용자 비밀번호 또는 기호 URL을 검색 할 수 있습니까?

분류에서Dev

file_get_contents ()를 사용하여 여러 파일을 검색 할 수 있습니까?

분류에서Dev

Windows에서 Powershell을 사용하여 여러 Google 검색에서 정보를 추출 할 수 있습니까?

분류에서Dev

Bash를 사용하여이 두 파일 검색을 어떻게 수행 할 수 있습니까?

분류에서Dev

Obj-C에서 술어를 사용하여 이름으로 사진을 검색 할 수 있습니까?

분류에서Dev

Xamarin Forms : SettingsPlugin을 사용하여 EpubBook 데이터를 저장하고 검색 할 수 있습니까?

분류에서Dev

Microsoft Dynamics 365에서 FetchXML을 사용하여 GUID로 엔터티를 검색 할 수 있습니까?

분류에서Dev

트위터 API를 사용하여 일주일 전에 트윗을 검색 할 수 있습니까?

분류에서Dev

Firefox 디버거를 사용하여 HTML DOM을 어떻게 검색 할 수 있습니까?

분류에서Dev

ls를 사용하여 이름 길이가 고정 된 파일을 어떻게 검색 할 수 있습니까?

분류에서Dev

mongo 텍스트 인덱스를 사용하여 EVE로 텍스트 검색을 할 수 있습니까?

분류에서Dev

Grails 파생 속성을 사용하여 도메인 객체를 검색 할 수 있습니까?

분류에서Dev

문자열을 사용하여 변수를 검색하는 방법? / 클래스에서 변수를 검색 할 수 있습니까?

분류에서Dev

TrueZip을 사용하여 스트림을 검색 할 수 있습니까?

분류에서Dev

wtform을 사용하여 GET 매개 변수를 검증 할 수 있습니까?

분류에서Dev

Hive의 테이블에 "두 번째 이름"을 지정하여 사용자가 테이블의 두 이름 중 하나를 참조하고 동일한 것을 검색 할 수 있도록하는 방법이 있습니까?

분류에서Dev

텍스트 유사성을 사용하여 관련 데이터베이스 테이블 / 필드를 검색 할 수 있습니까?

분류에서Dev

Java에서 해시 테이블을 사용하여 검색 방법을 어떻게 할 수 있습니까?

분류에서Dev

Tcl Selenium Webdriver 인터페이스를 사용하여 로케이터에서 정규식을 사용하여 요소를 검색 할 수 있습니까?

분류에서Dev

equalTo () 쿼리 Firebase를 사용하여 값을 검색 할 수 없습니다.

분류에서Dev

XElement를 사용하여 XML 요소의 값을 검색 할 수 없습니다.

분류에서Dev

'in'연산자를 사용하여 '728'을 검색 할 수 없습니다.

분류에서Dev

pip를 사용하여 python 패키지 pmock을 검색 할 수 없습니다.

분류에서Dev

구문 분석을 사용하여 쿼리를 검색 할 수 없습니다.

분류에서Dev

인덱스를 사용하여 검색 속도를 위해이 MySql 테이블을 어떻게 최적화 할 수 있습니까?

분류에서Dev

텍스트 파일을 가져와 변수로 사용하여 대용량 파일의 드라이브 위치를 검색 할 수 있습니까? (Powershell 사용)

Related 관련 기사

  1. 1

    CMD를 사용하여 Windows에서 파일을 검색 할 수 있습니까?

  2. 2

    FBFriendPickerViewController를 사용하여 'installed'= 0을 fieldsForRequest로 검색 할 수 있습니까?

  3. 3

    Windows 검색 엔진 (W7)을 사용하여 PHP 파일 내부를 검색 할 수 있습니까?

  4. 4

    Siebel eScript를 사용하여 사용자 비밀번호 또는 기호 URL을 검색 할 수 있습니까?

  5. 5

    file_get_contents ()를 사용하여 여러 파일을 검색 할 수 있습니까?

  6. 6

    Windows에서 Powershell을 사용하여 여러 Google 검색에서 정보를 추출 할 수 있습니까?

  7. 7

    Bash를 사용하여이 두 파일 검색을 어떻게 수행 할 수 있습니까?

  8. 8

    Obj-C에서 술어를 사용하여 이름으로 사진을 검색 할 수 있습니까?

  9. 9

    Xamarin Forms : SettingsPlugin을 사용하여 EpubBook 데이터를 저장하고 검색 할 수 있습니까?

  10. 10

    Microsoft Dynamics 365에서 FetchXML을 사용하여 GUID로 엔터티를 검색 할 수 있습니까?

  11. 11

    트위터 API를 사용하여 일주일 전에 트윗을 검색 할 수 있습니까?

  12. 12

    Firefox 디버거를 사용하여 HTML DOM을 어떻게 검색 할 수 있습니까?

  13. 13

    ls를 사용하여 이름 길이가 고정 된 파일을 어떻게 검색 할 수 있습니까?

  14. 14

    mongo 텍스트 인덱스를 사용하여 EVE로 텍스트 검색을 할 수 있습니까?

  15. 15

    Grails 파생 속성을 사용하여 도메인 객체를 검색 할 수 있습니까?

  16. 16

    문자열을 사용하여 변수를 검색하는 방법? / 클래스에서 변수를 검색 할 수 있습니까?

  17. 17

    TrueZip을 사용하여 스트림을 검색 할 수 있습니까?

  18. 18

    wtform을 사용하여 GET 매개 변수를 검증 할 수 있습니까?

  19. 19

    Hive의 테이블에 "두 번째 이름"을 지정하여 사용자가 테이블의 두 이름 중 하나를 참조하고 동일한 것을 검색 할 수 있도록하는 방법이 있습니까?

  20. 20

    텍스트 유사성을 사용하여 관련 데이터베이스 테이블 / 필드를 검색 할 수 있습니까?

  21. 21

    Java에서 해시 테이블을 사용하여 검색 방법을 어떻게 할 수 있습니까?

  22. 22

    Tcl Selenium Webdriver 인터페이스를 사용하여 로케이터에서 정규식을 사용하여 요소를 검색 할 수 있습니까?

  23. 23

    equalTo () 쿼리 Firebase를 사용하여 값을 검색 할 수 없습니다.

  24. 24

    XElement를 사용하여 XML 요소의 값을 검색 할 수 없습니다.

  25. 25

    'in'연산자를 사용하여 '728'을 검색 할 수 없습니다.

  26. 26

    pip를 사용하여 python 패키지 pmock을 검색 할 수 없습니다.

  27. 27

    구문 분석을 사용하여 쿼리를 검색 할 수 없습니다.

  28. 28

    인덱스를 사용하여 검색 속도를 위해이 MySql 테이블을 어떻게 최적화 할 수 있습니까?

  29. 29

    텍스트 파일을 가져와 변수로 사용하여 대용량 파일의 드라이브 위치를 검색 할 수 있습니까? (Powershell 사용)

뜨겁다태그

보관