Это возможно с небольшой кодировкой Python.
Я написал простой скрипт для поиска местоположений грузовых офисов.
Первые шаги
- Откройте страницу ajax с помощью Google Chrome, например, на турецком языке, но вы можете это понять.
http://www.yurticikargo.com/bilgi-servisleri/Sayfalar/en-yakin-sube.aspx
- Нажмите F12, чтобы отобразить нижние инструменты разработчика, и перейдите на вкладку Сеть .
- Перемещение по вкладке XHR внизу.
- Сделайте AJAX-запрос, выбрав элемент в первом поле со списком. И перейдите на Вкладка Заголовки
Вы будете GetTownByCity на левой панели, щелкните по нему и осмотрите его.
Request URL: (...)/_layouts/ArikanliHolding.YurticiKargo.WebSite/ajaxproxy-
sswservices.aspx/GetTownByCity
Request Method:POST
Status Code:200 OK
В элементе дерева Request Payload
вы увидите
Request Payload :{cityId:34}
заголовок.
Это поможет нам реализовать код Python.
Давай сделаем это.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
# import simplejson as json
baseUrl = 'http://www.yurticikargo.com/'
ajaxRoot = '_layouts/ArikanliHolding.YurticiKargo.WebSite/'
getTown = 'ajaxproxy-sswservices.aspx/GetTownByCity'
urlGetTown = baseUrl + ajaxRoot + getTown
headers = {'content-type': 'application/json','encoding':'utf-8'} # We are sending JSON headers, equivalent to Python dictionary
for plaka in range(1,82): # Because Turkiye has number plates from 1 to 81
payload = {'cityId':plaka}
r = requests.post(url, data=json.dumps(payload), headers=headers)
data = r.json() # Returning data is in JSON format, if you need HTML use r.content()
# ... Process the fetched data with JSON parser,
# If HTML format, Beautiful Soup, Lxml, or etc...
Обратите внимание, что этот код является частью моего рабочего кода, и он написан на лету, наиболее важным является Я не тестировал его. Для его запуска могут потребоваться небольшие изменения.