Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2017 17:04:44

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Маньяки, блин :) из пушки на луну по воробьям. Не проще было разобрать как данные в JSON организованы?!



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

Офлайн

#2 Фев. 26, 2017 17:20:13

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

PooH
Не проще было разобрать как данные в JSON организованы?!
покажите конструктивный пример

Офлайн

#3 Фев. 26, 2017 18:00:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8040
Репутация: +  559  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

vic57
покажите конструктивный пример
Да уже, кажется, все разжевано. Ну ок, давайте еще раз. Есть два способа получить динамическую веб-страницу. Будем считать динамической страницу, содержимое которой формируется при каждой загрузке в браузер и может быть каждый раз разным и индивидуальным для пользователя, в отличии от статической веб-страницы, которая представляет собой простой html-документ и всегда выглядит для всех одинаково.
1. Первый способ классический. На каждый get-запрос сервер формирует новый html-документ. Данные для отображения зашиваются непосредственно в документ - в таблицы, заголовки, ссылки и т.д.
То есть, если юзер нажал на ссылку http/…/…/?page=5, в ответ от сервера придет полноценный документ, в котором будет head, body, куча элементов для красоты и всякого СЕО и например, таблица
 <html>
<head>
.....
</head>
<body>
<h1>LALALALALA</h1>
<table>
<tr>
<td>Name</td>
<td>Count</td>
</tr>
<tr>
<td>John</td>
<td>23</td>
</tr>
<tr>
<td>Alice</td>
<td>45</td>
</tr>
</table>
</html>

2. Современный способ. Сервер не формирует структуру документа и не зашивает данные в разметку. Сам по себе документ статичный, одинаковый для всех и представляет собой чисто каркас страницы. Условно так
 <html>
<head>
.....
</head>
<body>
<h1>LALALALALA</h1>
<table id="count_table">
</table>
</html>
А вот данными таблица заполняется джаваскриптом отдельными аякс-запросами, ответы на которые приходят в браузер в JSON-формате. Это будет выглядеть условно так

 [{name: "John", count: 23}, {name: Alice, count: 45}]


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



Отредактировано FishHook (Фев. 26, 2017 18:25:35)

Офлайн

#4 Фев. 26, 2017 18:13:15

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8040
Репутация: +  559  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

Слева адрес, справа - данные.
Ничего вытягивать из разметки не надо.



Офлайн

#5 Фев. 26, 2017 18:53:21

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

FishHook
сайт на AngularJS
как вы элемент со скрина получите?

Прикреплённый файлы:
attachment scr.png (37,4 KБ)

Офлайн

#6 Фев. 26, 2017 18:57:25

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8040
Репутация: +  559  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url



Офлайн

#7 Фев. 26, 2017 19:16:48

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

FishHook, а без браузера, в скрипте? не надо картинки показывать, код покажите
http://bus.gov.ru/pub/agency/206030/tasks/3573224

Отредактировано vic57 (Фев. 26, 2017 19:27:58)

Офлайн

#8 Фев. 26, 2017 20:21:31

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

FishHook
ЕЯПП это?
http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224
FishHook таки да, сделал get запрос, получил json без браузера. век живи - век учись
+ в репу

Отредактировано vic57 (Фев. 26, 2017 20:57:16)

Офлайн

#9 Фев. 27, 2017 02:08:38

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 143
Репутация: +  8  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

FishHook
Отдельно +!

vic57
FishHook таки да, сделал get запрос, получил json без браузера. век живи - век учись
А можно по подробней?

Офлайн

#10 Фев. 27, 2017 03:33:34

vic57
Зарегистрирован: 2015-07-07
Сообщения: 893
Репутация: +  126  -
Профиль   Отправить e-mail  

Спарсить данные с указанного url

 import requests
import time
import json
url = 'http://bus.gov.ru/public/agency/agency_tasks.json?agency=206030&task=3573224'
r = requests.get(url)
data = r.json()
t = json.dumps(data['agency']['publishedGeneralInformation']['realPublishDate'],
               ensure_ascii=False,sort_keys=True,indent=3)
t = t[:-3] +'.'+t[-3:]#??
print t
print time.time()
print time.gmtime()
print time.gmtime(float(t))
скачиваешь json плагин к ФФ и смотришь
ЗЫ совсем я забыл про пхп

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version