Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 12.06.2016
Сообщений: 33

Парсинг ajax

03.05.2018, 11:35. Показов 9725. Ответов 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 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru