Introduction to WebScraping Workshop - Semcomp 24 Beta

Overview

O que é WebScraping?

Extrair informações da internet de forma automatizada. Existem diversas maneiras de fazer isso, nesse tutorial vamos ver algumas delas, por meio de bibliotecas de python.

Porque é útil?

  • Automatizar processos
  • Gerar Leads
  • Acompanhar produtos
  • Fazer projetos!!!

É legal?

Bom, é legal, mas nem sempre é legal. Em geral, criar web scrapers é muito divertido, mas nem sempre é uma coisa legalizada. Por isso é importante ficar atento aos termos de uso dos sites. O linkedin, por exemplo, não permite que sejam utilizados scrapers em nenhuma situação.

Quais as ferramentas utilizadas nesse tutorial?

Todos os códigos são feitos em Python 3. Além disso, são utilizadas algumas bibliotecas, as principais são:

Outras bibliotecas são utilizadas de apoio, e para instalar tudo, basta utilizar o arquivo requirements.txt presente nesse repositório por meio do comando:

pip3 install -r requirements.txt

O projeto

O projeto tem uma ideia bem direta: descobrir quais palavras os artistas mais utilizam em suas músicas. Para isso vamos scrapar o site letras.mus, buscando todas as músicas de um dado artista.

Versão 1

Nessa versão do projeto, pegamos as letras do letras.mus e contamos a palavras.

Versão 2

A segunda versão do projeto envolve pegar os artistas mais relevantes do lastfm e, para cada um desses artistas, fazer a contagem das palavras. Nessa versão usamos requests-html para renderizar a página.

Versão 3

Na terceira versão do projeto, fazemos o mesmo que na versão 2, porém dessa vez é feita a requisição direto em um endpoint com a biblioteca requests.

Versão 4

A última versão do projeto envolve buscar a quantidade de ouvintes mensais dos artistas no spotify. Para isso usamos selenium.

Sobre as ferramentas

Requests

  • Biblioteca para fazer requisições web.
  • Pode ser utilizada para get, post, delete...
  • Precisa de outra biblioteca para fazer parsing do html.

Lxml

  • Biblioteca para fazer parsing do html.
  • Útil pois permite busca por xpath de forma nativa.
  • Minha queridinha s2

BeautifulSoup

  • Biblioteca para fazer parsing do html.
  • Tem muita documentação e perguntas na internet (alo stackoverflow)
  • É bem flexível, permite o uso de diversos parsers, mas não tem xpath =(

Requests-html

  • Em muitos casos só a requisição não basta. É preciso também renderizar o javascript da página. A biblioteca requests não tem essa funcionalidade.
  • A requests-html pode ser usada da mesma maneira que a requests, mas possui essa nova funcionalidade de renderização.
  • Precisa de outra biblioteca para fazer parsing do html (pode usar qualquer uma das duas citadas acima).

Selenium

  • Selenium é uma ferramenta de automatização de software e é muito utilizada para realização de testes. MAS é super útil para scraping também.
  • Como o software simula um navegador, muitas vezes "engana" melhor os antibots. Além disso, renderiza o javascript normalmente, então serve para esses casos também.
  • Na maioria das vezes, usar selenium é matar uma barata com um canhão, mas em alguns momentos pode ser útil.
  • Truque: se nada que você fizer funcionar naquele site, tenta usar o selenium e fazer requisições para outros sites com aquele driver. Isso vai gerar cookies no navegador e vai ser mais fácil se passar por um usuário comum.

Truque endpoint

  • Um dos melhores truques de scraping é buscar enpoints na aba de network do navegador.
  • Isso permite fazer uma requisição direta sem precisar fazer parsing de html, o que facilita nossa vida e ainda é mais rápido.
  • É o jeito mais fácil de codar, mas as vezes exige paciência para encontrar o endpoint certo.
  • Para o código basta:
    1. Clicar em network
    2. Encontrar endpoint
    3. Clicar com botão direito
    4. Clicar em "Copiar como Curl"
    5. Ir para esse site
    6. Copiar resultado como requests
    7. Ta pronto o sorvetinho

Passo a passo que >eu< uso

Onde aprender mais?

Existem muuuuitos sites com tutoriais por aí, mas eu gosto bastante de usar o Medium para aprender esse tipo de coisa. Algumas sugestões de texto são:

Além disso, também tem esse projeto guiado no Coursera que é bem legal.

No mais, pega alguns sites e vai tentando. Se der errado, pesquisa no StackOverflow e tenta entender o que rolou, isso é um processo importante também!

E uma última dica, tem muuuitos sites diferentes por ai, cada um com sua própria peculiaridade. Não dá para aprender TUDO de scraping sem ir treinando, então recomendo aprender o básico e depois ir pesquisando sob demanda as coisas mais complexas =D

Último aviso

Vocês tem meus contatos, então podem ficar a vontade pra mandar mensagem/email sempre que precisarem =D

Owner
Luísa Moura
Luísa Moura
WebScrapping Project - G1 Latest News

Web Scrapping com Python Esse projeto consiste em um código para o usuário buscar as últimas nóticias sobre um termo qualquer, no site G1. Para esse p

Eduardo Henrique 2 Feb 13, 2022
一个m3u8视频流下载脚本

一个Python的m3u8流视频下载脚本 介绍 m3u8流视频日益常见,目前好用的下载器也有很多,我把之前自己写的一个小脚本分享出来,供广大网友使用。写此程序的目的在于给视频下载爱好者提供一个下载样例,可直接调用,勿再重复造轮子。 使用方法 在python中直接运行程序或进行外部调用 import

Nchu 0 Oct 10, 2021
API to parse tibia.com content into python objects.

Tibia.py An API to parse Tibia.com content into object oriented data. No fetching is done by this module, you must provide the html content. Features:

Allan Galarza 25 Oct 31, 2022
Web Scraping Instagram photos with Selenium by only using a hashtag.

Web-Scraping-Instagram This project is used to automatically obtain images by web scraping Instagram with Selenium in Python. The required input will

Sandro Agama 3 Nov 24, 2022
Python web scrapper

Website scrapper Web scrapping project in Python. Created for learning purposes. Start Install python Update configuration with websites Launch script

Nogueira Vitor 1 Dec 19, 2021
对于有验证码的站点爆破,用于安全合法测试

使用方法 python3 main.py + 配置好的文件 python3 main.py Verify.json python3 main.py NoVerify.json 以上分别对应有验证码的demo和无验证码的demo Tips: 你可以以域名作为配置文件名字加载:python3 main

47 Nov 09, 2022
Dude is a very simple framework for writing web scrapers using Python decorators

Dude is a very simple framework for writing web scrapers using Python decorators. The design, inspired by Flask, was to easily build a web scraper in just a few lines of code. Dude has an easy-to-lea

Ronie Martinez 326 Dec 15, 2022
Scrapping the data from each page of biocides listed on the BAUA website into a csv file

Scrapping the data from each page of biocides listed on the BAUA website into a csv file

Eric DE MARIA 1 Nov 30, 2021
Python based Web Scraper which can discover javascript files and parse them for juicy information (API keys, IP's, Hidden Paths etc)

Python based Web Scraper which can discover javascript files and parse them for juicy information (API keys, IP's, Hidden Paths etc).

Amit 6 Aug 26, 2022
抖音批量下载用户所有无水印视频

Douyincrawler 抖音批量下载用户所有无水印视频 Run 安装python3, 安装依赖

28 Dec 08, 2022
UsernameScraperTool - Username Scraper Tool With Python

UsernameScraperTool Username Scraper for 40+ Social sites. How To use git clone

E4crypt3d 1 Dec 20, 2022
Semplice scraper realizzato in Python tramite la libreria BeautifulSoup

Semplice scraper realizzato in Python tramite la libreria BeautifulSoup

2 Nov 22, 2021
Web scraped S&P 500 Data from Wikipedia using Pandas and performed Exploratory Data Analysis on the data.

Web scraped S&P 500 Data from Wikipedia using Pandas and performed Exploratory Data Analysis on the data. Then used Yahoo Finance to get the related stock data and displayed them in the form of chart

Samrat Mitra 3 Sep 09, 2022
A web crawler script that crawls the target website and lists its links

A web crawler script that crawls the target website and lists its links || A web crawler script that lists links by scanning the target website.

2 Apr 29, 2022
A Pixiv web crawler module

Pixiv-spider A Pixiv spider module WARNING It's an unfinished work, browsing the code carefully before using it. Features 0004 - Readme.md updated, co

Uzuki 1 Nov 14, 2021
This is a simple website crawler which asks for a website link from the user to crawl and find specific data from the given website address.

This is a simple website crawler which asks for a website link from the user to crawl and find specific data from the given website address.

Faisal Ahmed 1 Jan 10, 2022
Simple Web scrapper Bot to scrap webpages using Requests, html5lib and Beautifulsoup.

WebScrapperRoBot Simple Web scrapper Bot to scrap webpages using Requests, html5lib and Beautifulsoup. Mark your Star ⭐ ⭐ What is Web Scraping ? Web s

Nuhman Pk 53 Dec 21, 2022
Works very well and you can ask for the type of image you want the scrapper to collect.

Works very well and you can ask for the type of image you want the scrapper to collect. Also follows a specific urls path depending on keyword selection.

Memo Sim 1 Feb 17, 2022
A high-level distributed crawling framework.

Cola: high-level distributed crawling framework Overview Cola is a high-level distributed crawling framework, used to crawl pages and extract structur

Xuye (Chris) Qin 1.5k Dec 24, 2022
A Web Scraper built with beautiful soup, that fetches udemy course information. Get udemy course information and convert it to json, csv or xml file

Udemy Scraper A Web Scraper built with beautiful soup, that fetches udemy course information. Installation Virtual Environment Firstly, it is recommen

Aditya Gupta 15 May 17, 2022