Ir para conteúdo
  • 0
acrjunior

Web Scraping

Pergunta

Boa tarde a todos(as).

 

Estou tentando fazer um web scraping em um site de estatísticas online de jogos de futebol.

Entro na pagina principal e pego os links dos jogos ao vivo e em seguida entra em cada link e pega as informações que eu quero.
Mas se eu rodar de novo 2mins depois, o site bloqueia o acesso.

Alguém pode me ajudar a resolver isso ? Ou não tem solução ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por reif
      Pessoal, tudo bem? Estou tentando fazer um web scraping com CURL, mas o resultado é diferente do que eu vejo no browser (Chrome).
      O site retorna preços de alugueis de carro. Quando eu abro via browser, ele já mostra automaticamente os valores em reais. Por algum motivo, quando eu faço o request via CURL ele mostra os valores em dólares. Eu consegui fazer com que ele retorne valores em reais utilizando um proxy brasileiro, mas queria achar uma forma direta, sem usar proxy, pq toda hora tenho que ficar atualizando os ips desses proxys.
       
      <?php date_default_timezone_set('America/Sao_Paulo'); $link = ""; function curl($url, $proxy) { $options = Array( CURLOPT_RETURNTRANSFER => TRUE, // Setting cURL's option to return the webpage data CURLOPT_FOLLOWLOCATION => TRUE, // Setting cURL to follow 'location' HTTP headers CURLOPT_AUTOREFERER => TRUE, // Automatically set the referer where following 'location' HTTP headers CURLOPT_CONNECTTIMEOUT => 300, // Setting the amount of time (in seconds) before the request times out CURLOPT_TIMEOUT => 300, // Setting the maximum amount of time for cURL to execute queries CURLOPT_MAXREDIRS => 10, // Setting the maximum number of redirections to follow CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36", // Setting the useragent CURLOPT_URL => $url, // Setting cURL's URL option with the $url variable passed into the function CURLOPT_HTTPPROXYTUNNEL => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, ); $ch = curl_init(); // Initialising cURL curl_setopt_array($ch, $options); $data = curl_exec($ch); if ($data === false) $data = curl_error($ch); return stripslashes($data); curl_close($ch); } $scraped_page = curl($link); echo $scraped_page; ?> Minha última tentativa foi adicionar esses parametros abaixo no final do link, mas sem sucesso.
       
      basecurrency=BRL&prefcurrency=BRL&preflang=536&lang=536&crmActionType=&langCurrencyActionType=currency  
       
      Alguém conseguiria me ajudar e possivelmente me explicar o que acontece?
       
      Obrigado!
    • Por wootzor
      Não tenho experiência em Python mas decidi tentar fazer qualquer coisa com o Scrapy, para testes. Assim, estou a tentar recolher os artigos existentes numa determinada página, nomeadamente num elemento DIV com um ID devBody. Nesse sentido, o meu objectivo é obter o título do artigo e o respectivo URL. Assim, estabeleci uma regra para percorrer apenas o conteúdo desse elemento. Acontece que, por alguma razão, a recolha de links não se está a limitar apenas a esse elemento, o que faz com que estejam a ser recolhidos links não relevantes e que depois "baralham" os pares título-URL quando os tento construir. Segue o código:
      from scrapy import Spider from scrapy.linkextractors import LinkExtractor from scrapy.spiders import Rule from stack.items import StackItem class StackSpider(Spider): name = "stack" allowed_domains = ["dev.mysql.com"] start_urls = ["http://dev.mysql.com/tech-resources/articles/"] rules = (Rule(LinkExtractor(restrict_xpaths='//div[@id="devBody"]',), callback='parse'),) def parse(self, response): entries = response.xpath('//h4') items = [] //usar um contador aqui não será, de certeza, a melhor solução mas foi a única que encontrei //para não receber todos os dados recolhidos num único objecto i = 0 for entry in entries: item = StackItem() item['title'] = entry.xpath('//a/text()').extract()[i] item['url'] = entry.xpath('//a/@href').extract()[i] yield item items.append(item) i += 1 Para tentar perceber o que se está a passar, recorri às Developer Tools do Chrome e, através de consultas XPath, tudo parece estar correcto. No entanto, quando tento replicar a mesma lógica no código, algo corre mal. Segundo os logs, é dito que foram de facto recolhidos 57 links, mas há bastantes que estão fora do âmbito (a tal div com ID devBody). Não faço ideia o que possa estar a causar este comportamento. Estou a usar a versão 1.0.5 do Scrapy e Python 2.7. Agradeço desde já qualquer ajuda.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.