Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Passando valores para campos sem atributo name

Olá,

Estava fazendo o Curso de Web Scraping com PHP e me deparei com um pequeno problema: No curso (aula 2) é mostrado como preencher um formulário com campos de login e de senha. No exemplo do curso ambos os campos possuem a propriedade "name" preechida corretamente. Site trabalhado no curso: https://vitormattos.github.io/poc-lineageos-cellphone-list-statics/login/

<input name="username" class="form-control" placeholder="Username" type="text">
<input name="password" class="form-control" placeholder="Password" type="password">

E código que é passado no curso é que o segue:

$crawler = $browser->submitForm('Go', [
        'username' => 'exemplo@email.com',
        'password' => 'senhaexemplo',
    ], 'GET');

Porém, no site em que preciso realizar o scraping os campos não possuem a propriedade "name" preenchida:

<input id="identerp" type="text" class="form-control number-only input-sm" data-submit="S" data-mapped="user_ref" maxlength="12" placeholder="ID Usuário">
<input id="senha" type="password" class="form-control input-sm" data-submit="S" data-mapped="pass_ref" placeholder="Senha">

O código demonstrado no treinamento não funciona nesse caso. Mesmo preenchendo com o ids de cada campo.

Eu já li a documentação da biblioteca trabalhada no curso (a Symfony/BrowserKit), mas lá só há exemplos de formulários com os campos nomeados...é possível fazer esse login mesmo sem os nomes dos campos? Ou é mais viavel buscar outras formas/bibliotecas de scraping?

Desde já agradeço a atenção.

2 respostas
solução!

mesmo q vc insira o atributo name nos campos input, e submita o form, vc ainda assim não vai consegui fazer o login nesse site, pois é muito provavel, que o site busque os valores desses campos com javascript para fazer o envio dos dados. Nestes casos onde o Javascript do site influência o que esta tentando fazer, você vai ter que usar uma biblioteca que manipule o proprio navegador e não apenas o html.

Da uma olhada nesse video https://www.youtube.com/watch?v=II8tp2izyrc que você vai entender melhor.

Entendi Vinicius, muito obrigado pela ajuda :-) Testei aqui e atende o que eu preciso