Задать вопрос
Lendwye
@Lendwye

Почему crawler выдаёт не всё содержимое?

Всем привет.
В проекте используется symfony последней (на 22.02.2023) версии. Для парсинга данных используется crawler. При парсинге url https://bscscan.com/address/0x150C823dB4Ed35596e55... элемента
#ContentPlaceHolder1_divSummary > div.row.mb-4 > div.col-md-6.mb-3.mb-md-0 > div > div.card-body > div:nth-child(1) > div.col-md-8

Вместо всего html выдаётся только 0. Как только не пробовал крутить, смотреть разные селекторы, пытаться через дочерний элемент получить содержимое, видет он только 0.
Контроллер выглядит следующим образом
<?php

namespace App\Controller;

use App\Entity\User;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DomCrawler\Crawler;

class WalletAPIController extends AbstractController
{
	public function wallet_get_balance(ManagerRegistry $doctrine): Response
	{
		$method = "aes-128-ecb";
		$address = openssl_encrypt($_COOKIE['address'], $method, $_ENV['CRYPTO_KEY']);
		$url = "https://bscscan.com/address/" . $address;
		$curl_balance = curl_init($url);
		curl_setopt($curl_balance, CURLOPT_CONNECTTIMEOUT, 4);
		curl_setopt($curl_balance, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl_balance, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($curl_balance, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($curl_balance, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($curl_balance, CURLOPT_USERAGENT, 'Oracle');
		$query = curl_exec($curl_balance);
		curl_close($curl_balance);
		$crawler = new Crawler($query);
		$wallet_balance = $crawler->filter('#ContentPlaceHolder1_divSummary > div.row.mb-4 > div.col-md-6.mb-3.mb-md-0 > div > div.card-body > div:nth-child(1)')->children();

		//$wallet_balance = $wallet_balance[0]; 
		//$wallet_balance = $wallet_balance[0];
		return new JsonResponse($wallet_balance);
		//return new JsonResponse(print_r($wallet_balance));
	}
}
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний 2 комментария
Решения вопроса 1
Lendwye
@Lendwye Автор вопроса
Отвечая на свой же вопрос, указал вместо dectypt - encrypt, поэтому банально парсился не тот url который я хотел.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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