Python requests ajax request

Парсинг ajax.php через requests

Добрый день!
Пытаюсь спарсить страницу сайта ЖК.
При разборе через инструменты разработчика firefox вот этого сайта: https://bestcon.ru/realty/krylatskiy#shaxmatka
я обнаружил такой POST-запрос на AJAX: https://bestcon.ru/ajax/ajax.php, который выдает подгружаемую страницу (во вложении) и имеет вот эти header-ы:

Host: bestcon.ru User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Cookie: _ym_uid=1598125995569276938; _ym_d=1598125995; _ga=GA1.2.1620956004.1598125996; _gid=GA1.2.1246129657.1598125996; _fbp=fb.1.1598125996677.2020556932; PHPSESSID=8e7pug74ce7i6aimdcd26onmm1; _ym_isad=2; _ym_visorc_27386600=w Upgrade-Insecure-Requests: 1 Cache-Control: max-age=0
ajax_type=get_mode_table&id_object=9
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
headers = {'Host': 'bestcon.ru' ,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0' ,'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ,'Accept-Language': 'en-US,en;q=0.5' ,'Accept-Encoding': 'gzip, deflate, br' ,'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' ,'Content-Length': '36' ,'Connection': 'keep-alive' ,'Pragma':'no-cache' ,'Cookie': '_ym_uid=1598125995569276938; _ym_d=1598125995; _ga=GA1.2.1620956004.1598125996; _gid=GA1.2.1246129657.1598125996; _ym_isad=2; _fbp=fb.1.1598125996677.2020556932; PHPSESSID=8j0k5snf76pe918qgq4i3s7bn7; _ym_visorc_27386600=w' ,'Upgrade-Insecure-Requests': '1' ,'Cache-Control': 'max-age=0' ,'TE': 'Trailers'} payload = {'ajax_type':'get_mode_table', 'id_object':'9'} MAX_RETRIES = 20 url ='https://bestcon.ru/ajax/ajax.php' session = requests.Session() adapter = requests.adapters.HTTPAdapter(max_retries=MAX_RETRIES) session.mount('https://', adapter) session.mount('http://', adapter) session.get('https://bestcon.ru') session.post(url = url, headers=headers, params = payload).text

В итоге вылезает ошибка: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’,))(во вложении скрин)
Хотя все header-ы правильно расписал. Как обойти эту ошибку и получить в response нужную страницу?

Читайте также:  Python try except on one line

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

Парсинг с использованием requests
Добрый день. Столкнулся со следующей проблемой. При попытке вытащить информацию с сайта отправлял.

Парсинг olx.ua Python+requests+bs4
Пытаясь сделать парсер мобильных телефонов на сайте olx.ua столкнулся с проблемой:при отправке ajax.

Зайти в сессию с requests и продолжить парсинг уже с Selenium
Добрый день, совсем запуталась с решением задачи: необходимо скачать картинки с нескольких.

Эксперт Python

1 2 3 4 5 6 7 8 9 10 11 12 13
import requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0'} payload = {'ajax_type': 'get_mode_table', 'id_object': '9'} url = 'https://bestcon.ru/ajax/ajax.php' session = requests.Session() session.headers = headers session.get('https://bestcon.ru') text = session.post(url=url, data=payload) print(text.text)

Источник

Python получает данные запроса AJAX

http://shop.11st.co.kr/stores/522047/cegrory Это URL URL для каждого продукта магазина.

1 Процесс Анализ AJAX:

1.1 Первый адрес URL-адреса классификации этого магазина, чтобы открыть эту картину:

session_url=http://shop.11st.co.kr/stores/522047/category

1.2 Получение данных AJAX:

Адрес запроса: jump_url, Отправка таблицы данных: form_data, Режим отправки: Post, Запросить информацию заголовка: заголовки

2. Анализ страницы

2.1 Когда вы нажимаете Далее, вы обнаружите, что URL-адрес и страница не изменяются в адресной строке, то он используется для использования метода AJAX.

method:StoreSearchListingAjax

2.2 Получить URL-адрес запроса и запрашивать заголовки запроса после использования:

http://shop.11st.co.kr/storesAjax/StoreListingAjaxAction.tmall?method=StoreSearchListingAjax
POST /storesAjax/StoreListingAjaxAction.tmall?method=StoreSearchListingAjax HTTP/1.1 Host: shop.11st.co.kr Connection: keep-alive Content-Length: 137 Accept: application/json, text/javascript, */*; q=0.01 Origin: http://shop.11st.co.kr X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Referer: http://shop.11st.co.kr/stores/522047/category Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Cookie: WMONID=QQRH5vHq0a_; PCID=15879036685077771016115; XSRF-TOKEN=cbfcf578-5b14-5ed1-380f-308df58ad410; TD=TB_ACT_DATA%7C0%3AN%3A-1%3A0%3AN%3A-1; _ga=GA1.3.1915814488.1587903671; _gid=GA1.3.1451948013.1587903671; PCID_FRV=true; RAKE_SID=15879036717188511103499; RAKE_SID_XSITE=15879036717188511103499; TP=scrnChk%7CY%23TB_DATA_CHK%7CN%3AY%23GLOBAL_DOMESTIC_ACCESS%7CY; DMP_UID=(DMPC)4d9b4410-f650-4dc5-bb6c-6f7bb58d62dc; AUID=AUID_iET0kpU0K6EvJpF84MPHow; TT=GLOBAL_CHINESE_IP_YN%7CY%2311ST_EN_CURR%7CCNY%23GLOBAL_DELIVERY%7C222%23GLOBAL_CHARSET%7Czh; JSESSIONID=m1O2eCNosbWjDxfe6IhayxSVgTg2P8w1h_urNbRD-KFHFV8Gn5kP!-1198550641 

AJAX отправленные данные формы данных:

searchKwd: storeId: 522047 storeNo: 522047 encSellerNo: 19wqwPhwf0bYTT5rhUwvVA== sortCd: NP filter: pageNo: 2 pageTypeCd: 02 trTypeCd: STP06

2.3 Затем проанализировать необходимость данных окончательного результата:

3. Запустите кодирование Python:

#-*-coding:utf-8-*- import requests import json headers = < 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0', 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest' >form_data = < 'searchKwd': '', 'storeId': '522047', 'storeNo': '522047', 'encSellerNo': '19wqwPhwf0bYTT5rhUwvVA==', 'sortCd': 'NP', 'filter': '', "pageNo": '', 'pageTypeCd': '02', 'trTypeCd': 'STP06', >first_url="http://shop.11st.co.kr/stores/522047/category" jump_url="http://shop.11st.co.kr/storesAjax/StoreListingAjaxAction.tmall?method=StoreSearchListingAjax" s = requests.Session() print(type(s)) s.post(first_url) prdDtlUrl_list=[] def getProDtlUrl_list(s,prdDtlUrl_list): totalpage=int(9301/30+1) # для Pageno в диапазоне (1, общая страница + 1): # Для Pageno в диапазоне (1, 3): # Тест 2 данные form_data['pageNo'] = '<>'.format(pageNo) response = s.post(jump_url, data=form_data, headers=headers) Byte_content = Repect.Content # Fyte Data # Stre = str (byte_content, 'utf-8') # string # Json_data = json.loads (byte_content) # Json data / load (данные файла), dumps / dump # print(str) Печать (Eval (byte_content) # Словарь Тип Eval (), при использовании Dict (), не очень легко сообщить dict_content=eval(byte_content) productList=dict_content['data']['productList'] print(productList) for d in productList: prdDtlUrl_list.append(d['prdDtlUrl']) print(prdDtlUrl_list) getProDtlUrl_list(s,prdDtlUrl_list) Распечатать («Ниже приведен адрес URL извлеченного продукта ===================) for url in prdDtlUrl_list: print(url)

4 Показать результаты:

Используйте регулярные выражения:

import requests import re process = requests.Session() url = 'http://shop.11st.co.kr/stores/522047/category' url1 = 'http://shop.11st.co.kr/storesAjax/StoreListingAjaxAction.tmall?method=StoreSearchListingAjax' headers = < 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive', 'Content-Length': '137', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Cookie': 'WMONID=zErTjIsNZ9l; PCID=15879009766040741912504; XSRF-TOKEN=2b308af8-e144-4c2f-216c-c6a9e24bad38; TD=TB_ACT_DATA%7C0%3AN%3A-1%3A0%3AN%3A-1; TP=scrnChk%7CY%23TB_DATA_CHK%7CN%3AY; _ga=GA1.3.406950129.1587900979; _gid=GA1.3.567725348.1587900979; PCID_FRV=true; RAKE_SID=15879009798878793472311; RAKE_SID_XSITE=15879009798878793472311; recopick_uid=41130255.1587901035216; plab.uid=753a5979-7ecb-491e-9bc2-12c09575be23; plab.h.11st_web=; _ascend_uid=3724501418_1587901035:1587901035331; DMP_UID=(DMPC)20a03a6b-3f3c-4e03-b9db-e1eeebe83f29; AUID=AUID_KkOd8Kfs5H-UandUvp-ohg; JSESSIONID=JXi2XhQJcEyhR3CjZDzRtp5E5rk7o1YWd2xdNh9DJP_M1x_aSW_I!-1198550641', 'Host': 'shop.11st.co.kr', 'Origin': 'http://shop.11st.co.kr', 'Pragma': 'no-cache', 'X-Requested-With': 'XMLHttpRequest', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36', 'Referer': 'http://shop.11st.co.kr/stores/522047/category', >data = < 'searchKwd': '', 'storeId': '522047', 'storeNo': '522047', 'encSellerNo': '19wqwPhwf0bYTT5rhUwvVA==', 'sortCd': 'NP', 'filter': '', 'pageTypeCd': '02', 'trTypeCd': 'STP06', ># '': '2' # Получить контент URL def get_urls(): response = process.get(url) response.encoding = 'utf-8' # '

Источник

Оцените статью