@ressiwage

Как рендерить сайты с жс, используя C#?

хочу спарсить сайт типа https://www.lesegais.ru/open-area/rent с использованием шарпа, но возникает загвоздка: абсолютно весь контент сайта подгружается жаваскриптом. Мне нужно спарсить именно шарпом, если бы я мог пользоваться питоном, вопрос был бы решён за полчаса.
Так вот, мне нужен способ, с помощью которого я смог бы отрендерить html код до его вида на клиентском компе, а затем получить этот html код.
Я пробовал selenium и cefsharp, оба работают так себе, не до конца подгружают контент.
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
напишите на питоне и вызовите из шарпа

UP
postman collection сохраняете как json и импортируете.
На чистом C# используйте веб клиент и отправляйте post запросы изменяя параметр number 0,1,2...n
{
	"info": {
		"_postman_id": "82c63f15-f241-46b4-b7a3-b3245ee52bb3",
		"name": "www.lesegais.ru",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "https://www.lesegais.ru/open-area/graphql",
			"request": {
				"method": "POST",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\r\n    \"query\": \"query SearchContractLease($size: Int!, $number: Int!, $filter: Filter, $orders: [Order!]) { searchContractLease(filter: $filter, pageable: {number: $number, size: $size}, orders: $orders) {\\n    content {\\n      companyName\\n      inn\\n      dealDate\\n      constituentName\\n      forestryName\\n      subForestryName\\n      tractName\\n      forestBlockNumbers\\n      woodVolume\\n      __typename\\n    }\\n    __typename\\n  }\\n}\\n\",\r\n    \"variables\": {\r\n        \"size\": 20,\r\n        \"number\": 0,\r\n        \"filter\": null,\r\n        \"orders\": null\r\n    },\r\n    \"operationName\": \"SearchContractLease\"\r\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "https://www.lesegais.ru/open-area/graphql",
					"protocol": "https",
					"host": [
						"www",
						"lesegais",
						"ru"
					],
					"path": [
						"open-area",
						"graphql"
					]
				}
			},
			"response": []
		}
	]
}


json для post запроса по адресу https://www.lesegais.ru/open-area/graphql
{
    "query": "query SearchContractLease($size: Int!, $number: Int!, $filter: Filter, $orders: [Order!]) { searchContractLease(filter: $filter, pageable: {number: $number, size: $size}, orders: $orders) {\n    content {\n      companyName\n      inn\n      dealDate\n      constituentName\n      forestryName\n      subForestryName\n      tractName\n      forestBlockNumbers\n      woodVolume\n      __typename\n    }\n    __typename\n  }\n}\n",
    "variables": {
        "size": 20,
        "number": 0,
        "filter": null,
        "orders": null
    },
    "operationName": "SearchContractLease"
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Я пробовал selenium и cefsharp, оба работают так себе, не до конца подгружают контент.

Ну тогда у вас нет шансов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы