2015-05-13 1 views
0

Мне поручено выполнять некоторые скребки данных от Wall Street Journal. После того, как вы выбрали город, мне дали красивый, сортируемый, с разбивкой по углам стол; однако, после загрузки источника HTML, мне не удалось найти какие-либо данные.Скребковые данные из DataTables

Некоторые детективные работы показали, что данные отображаются DataTables, но я не могу вызвать скриптовые данные.

Как я могу получить доступ к скриптам для данных из DataTables?

+0

Это где все их основные DataTables кода: http://projects.wsj.com/medicarebilling/js/script.min.js?v=d7116ab750, но я вижу, что они используют нумерацию страниц, не бесконечны прокрутки. Вопрос заключается в том, чтобы узнать, откуда кормит json. – dgig

+0

Я не смог найти «sAjaxSource» в выходном HTML-файле. –

ответ

2

Кажется, что кнопка отправки вызывает запрос AJAX для извлечения данных, что означает, что данные не включены в источник страницы, вы можете отслеживать сеть через утилиту браузера. Кстати, я обнаружил, что запрос AJAX делается на this url, имеющий некоторые параметры, которые определяют его критерии поиска, и после запроса на этот URL возвращенный ответ приходит в формате JSON, который очень легко разбирается, и вам повезло, что эта служба не требует метода аутентификации, что означает, что вы можете загрузить все доступные данные. Example url, получайте удовольствие :)

0

Вы можете попробовать варианты на звонках ниже. Если вы не знаете, с чего начать, лучше всего открыть консоль разработчика в своем любимом браузере и посмотреть разделы сети по мере ввода данных. Из моего взгляда, ясно, что они используют всевозможные источники данных - для карт, для списка врачей, для контента для каждого. Это довольно сложное приложение, которое у них есть.

curl 'http://projects.wsj.com/medicarebilling/js/doc-cards.json' -H 'Pragma: no-cache' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: http://projects.wsj.com/medicarebilling/' -H 'X-Requested-With: XMLHttpRequest' -H 'Cookie: __gads=ID=646810c03a66f80b:T=1427824722:S=ALNI_MbI1faJHjFHYyBE5Rc3RQEAACeljg; DJCOOKIE=ORC%3Dna%2Cus%7C%7CFCFGOOGLE%3D0%7C%7CFCFEXPGOOGLE%3D1431107109182; wsjregion=na%2Cus; utag_main=v_id:014c70fc41b60002799e4a2c78f90d078006007000fb8$_sn:3$_ss:1$_st:1431022512625$_pn:1%3Bexp-session$ses_id:1431020712625%3Bexp-session; s_fid=2A4A81015DE138F0-0436DAF9EC0F16F9; bkuuid=pjKMOz6q99OAYVkD; cX_P=i2xkpuyp35cvld6r; s_vnum=1432229868915%26vn%3D2; rsi_ct=2015_5_13:2; s_cc=true; s_invisit=true; gpv_pn=WSJ_infogrfx_interactive_MEDDATA1214_Medicare%20Unmasked%3A%20Behind%20the%20Numbers; s_sq=%5B%5BB%5D%5D' -H 'Connection: keep-alive' -H 'Cache-Control: no-cache' --compressed