0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33

Парсинг ajax

03.05.2018, 11:35. Показов 9736. Ответов 16

Студворк — интернет-сервис помощи студентам
Добрый день. Необходимо спарсить все домены отсюда. При переходе на следующую страницу в браузере в инспекторе вижу POST запрос https://myip.ms/ajax_table/sites/2/own/376714. Однако при попытке открыть эту ссылку в браузере, я не попадаю на вторую страницу. Помогите понять что не так? Чего-то не хватает в запросе?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2018, 11:35
Ответы с готовыми решениями:

От начинающего: Парсинг AJAX ?
Приветствую, All ! Хочу понять насколько подходит Питон для следующей задачи: Есть web страница, большая часть которой подгружается...

Парсинг ajax.php через requests
Добрый день! Пытаюсь спарсить страницу сайта ЖК. При разборе через инструменты разработчика firefox вот этого сайта:...

Парсинг содержимого страницы, которое формируется через AJAX
Доброго времени. Подскажите как можно реализовать парсинг содержимого, формируемого AJAX? BS4 не делает request на AJAX, а парсит...

16
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
03.05.2018, 11:56
а если так https://myip.ms/browse/sites/3/own/376714#logintop
0
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
03.05.2018, 11:57  [ТС]
Ого А можете объяснить как вы до этого додумались?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.05.2018, 12:48
Цитата Сообщение от catch222 Посмотреть сообщение
можете объяснить как вы до этого додумались
Логично предположить, что если первая страница загружается по адресу
https://myip.ms/browse/sites/1/own/376714
то вторая скорей всего по адресу
https://myip.ms/browse/sites/2/own/376714
и т.д.

Хотя для вашего случая это не имеет никакого значения: все страницы гораздо проще запрашивать post запросом (как это и делается при нажатии на кнопки пагинации), тогда меньше html прилетает.
1
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
03.05.2018, 22:22  [ТС]
Возникла другая проблема. Получают ответ с помощью библиотеки requests, возникает ошибка кодировки:
Кликните здесь для просмотра всего текста
UnicodeEncodeError: 'charmap' codec can't encode character '\xf4' in position 46598: character maps to <undefined>
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.05.2018, 23:52
В каком месте возникает ошибка? Если при выводе в windows cmd, то это нормально.
Используйте python 3.6 и выше - он умеет корректно работать с виндовой консолью.
Либо ознакомьтесь с правилами вывода\декодирования в cmd юникодных символов - это особый геморрой навык.
0
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
04.05.2018, 12:21  [ТС]
У меня Python 3.6 на винде. Попробовал на линуксе, там все работает как надо. А с чего начать овладение этим особым навыком?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.05.2018, 14:15
Вы так и не ответили в каком именно месте кода возникает ошибка.
В python 3.6 и выше вывод в cmd не должен вызывать проблем. Ну, кроме разве что каких-то особых случаев.
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
04.05.2018, 19:10
Цитата Сообщение от catch222 Посмотреть сообщение
Попробовал на линуксе, там все работает как надо.
посмотрите имя компьютера, поменять если на русском, убрать тире
я тоже промучался три недели, в итоге скачал ubuntu 18 залил на флешку rufus-ом
перегрузил компьютер и выбрал режим "сохранить предыдущую операционную систему" -
теперь у меня две системы - ubuntu и windows

ubuntu для работы
windows... не знаю зачем...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
04.05.2018, 21:00
Цитата Сообщение от IRIP Посмотреть сообщение
посмотрите имя компьютера
Для requests абсолютно не имеет значения кириллическое имя компьютера или нет.
Это джанго не может запустить "кириллический" сервер.
0
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
05.05.2018, 00:09  [ТС]
Разобрался. Дело было в том, что я использовал atom-runner, а не cmd. Помогло добавление
Python
1
2
#sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
#sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')
Возвращаясь к изначальному вопросу, почему, если перейти по ссылке, отображенной в инспекторе, не получается попасть на вторую страницу (чисто из любопытства)?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.05.2018, 00:38
Цитата Сообщение от catch222 Посмотреть сообщение
если перейти по ссылке, отображенной в инспекторе, не получается попасть на вторую страниц
Потому что это ссылка не для человека, а для API кода "роутера" сайта. Роутинг это маршрутизация url'ов на бэкенде.
0
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
05.05.2018, 10:13  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Потому что это ссылка не для человека, а для API кода "роутера" сайта. Роутинг это маршрутизация url'ов на бэкенде.
А можно было как-нибудь прикинуться этим "роутером"?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
05.05.2018, 10:21
Цитата Сообщение от Garry Galler Посмотреть сообщение
для API кода "роутера"

что-то вроде этого:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import axios from 'axios'
 
export const HTTP = axios.create(
  {
    baseURL: 'http:/localhost:8000/api/1/'
  }
)
 
 
import { HTTP } from './APIservice'
 
export const Post = {
  create (config) {
    return HTTP.post('/path/', config).then(response => {
      return response.data
    })
  },
  delete (post) {
    return HTTP.delete(`/path/${post.id}/`)
  },
  list () {
    return HTTP.get('/path/').then(response => {
      return response.data
    })
  }
}
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.05.2018, 13:21
Цитата Сообщение от catch222 Посмотреть сообщение
А можно было как-нибудь прикинуться этим "роутером"
Не "роутером", а скриптом с html страницы, который такой запрос шлет, а "роутер" сайта уже разрулит что вам отдать.
Разумеется, можно. Вы же граббер пишите, а не кликалку по кнопкам.
Граббер полностью имитирует работу javascript'ов, посылая на сервер точно такие же запросы.
Какие именно запросы нужно слать показывает отладчик браузера.
В данном случае нужно послать post запрос через requests со всеми нужными параметрами (и заголовками). Все нужные параметры также есть в отладчике браузера.
В ответ получите html код (и обратите внимание - это будет не полная страница, а только ее часть содержащая новые данные). Html нужно будет распарсить lxml. Ну или bs4, если не умеете работать с lxml.
2
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33
05.05.2018, 23:20  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Не "роутером", а скриптом с html страницы, который такой запрос шлет, а "роутер" сайта уже разрулит что вам отдать.
Разумеется, можно. Вы же граббер пишите, а не кликалку по кнопкам.
Граббер полностью имитирует работу javascript'ов, посылая на сервер точно такие же запросы.
Какие именно запросы нужно слать показывает отладчик браузера.
В данном случае нужно послать post запрос через requests со всеми нужными параметрами (и заголовками). Все нужные параметры также есть в отладчике браузера.
В ответ получите html код (и обратите внимание - это будет не полная страница, а только ее часть содержащая новые данные). Html нужно будет распарсить lxml. Ну или bs4, если не умеете работать с lxml.
А что делать если в ответ на пост запрос со всеми нужными заголовками сервер всё равно присылает не ту страницу?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
06.05.2018, 12:17
Цитата Сообщение от catch222 Посмотреть сообщение
А что делать
например, выложить сюда текст ошибки, или код которым делается запрос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2018, 12:17
Помогаю со студенческими работами здесь

Python Парсинг Ajax
Есть сайт, на нем выполняются переходы по страницам без обновления самого адреса, вот HTML блока: &lt;div...

AJAX + DRF: Парсинг ответа сервера
Здравствуйте! Сервер отдаёт такой ответ при post-запросе (по реализации): return Response(data=serializer.data,...

Парсинг по порядку или парсинг до определенного тега
Доброго времени друзья! Подскажите пожалуйста, к примеру есть вот такой html код: &lt;div class=&quot;container mt-3&quot;&gt; ...

Парсинг, AJAX
Допустим я логинюсь через cURL на некой странице. И потом уже хочу прямо из браузера добавить сообщение. Отправляется оно через AJAX....

Парсинг с javascript и ajax
Потребовалось парсить некоторую информацию с сайта, которая появляется только при нажатии определенной кнопки. При нажатии на эту кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru