{"id":11399,"date":"2020-12-18T13:15:21","date_gmt":"2020-12-18T13:15:21","guid":{"rendered":"https:\/\/www.rapidseedbox.com\/?p=11399"},"modified":"2025-10-28T18:31:07","modified_gmt":"2025-10-28T18:31:07","slug":"web-scraping","status":"publish","type":"post","link":"https:\/\/www.rapidseedbox.com\/pt\/blog\/web-scraping","title":{"rendered":"O guia definitivo para raspagem da Web [Atualizado]"},"content":{"rendered":"<p>In this ultimate guide, we will explore the world of web scraping, a powerful technique to extract data from websites. rat<\/p>\n\n\n\n<p><em>Quer seja um principiante curioso sobre o conceito ou um programador experiente que procura melhorar as suas compet\u00eancias, este guia tem algo valioso para todos. Desde compreender as no\u00e7\u00f5es b\u00e1sicas de extra\u00e7\u00e3o de dados HTML utilizando CSS e <a href=\"https:\/\/www.rapidseedbox.com\/blog\/xpath-cheat-sheet\" target=\"_blank\" rel=\"noreferrer noopener\">XPath<\/a> seletores at\u00e9 a raspagem pr\u00e1tica da Web com Python, temos tudo o que voc\u00ea precisa. Al\u00e9m disso, abordaremos os aspectos legais, considera\u00e7\u00f5es \u00e9ticas e pr\u00e1ticas recomendadas para garantir a raspagem respons\u00e1vel da Web. <\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"532\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping-1024x532.png\" alt=\"raspando a web\" class=\"wp-image-25091\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping-1024x532.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping-300x156.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping-18x9.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><em><strong>Isen\u00e7\u00e3o de responsabilidade: <\/strong>Este material foi desenvolvido estritamente para fins informativos. N\u00e3o constitui uma aprova\u00e7\u00e3o de quaisquer atividades (incluindo atividades ilegais), produtos ou servi\u00e7os. O usu\u00e1rio \u00e9 o \u00fanico respons\u00e1vel pelo cumprimento das leis aplic\u00e1veis, incluindo as leis de propriedade intelectual, quando utiliza os nossos servi\u00e7os ou se baseia em qualquer informa\u00e7\u00e3o aqui contida. N\u00e3o aceitamos qualquer responsabilidade por danos resultantes da utiliza\u00e7\u00e3o dos nossos servi\u00e7os ou das informa\u00e7\u00f5es aqui contidas, seja de que forma for, exceto quando explicitamente exigido por lei.<\/em><\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u00cdndice.&nbsp;<\/h2>\n\n\n\n<ol>\n<li><a href=\"#01\">O que \u00e9 Web Scraping e como funciona?<\/a> <\/li>\n\n\n\n<li><a href=\"#02\">No\u00e7\u00f5es b\u00e1sicas de extra\u00e7\u00e3o de dados HTML: Seletores CSS e XPath.<\/a><\/li>\n\n\n\n<li><a href=\"#03\">Web Scraping com Python (+ C\u00f3digo).<\/a><\/li>\n\n\n\n<li><a href=\"#06\">A raspagem da Web \u00e9 legal?<\/a> <\/li>\n\n\n\n<li><a href=\"#08\">Como \u00e9 que os s\u00edtios Web tentam bloquear a recolha de dados da Web?<\/a> <\/li>\n\n\n\n<li><a href=\"#010\">Pr\u00e1ticas \u00e9ticas e recomendadas para a recolha de dados na Web.<\/a> <\/li>\n\n\n\n<li><a href=\"#07\">Raspagem da Web: Perguntas frequentes (FAQ)<\/a><\/li>\n\n\n\n<li><a href=\"#012\">Considera\u00e7\u00f5es Finais.<\/a><\/li>\n<\/ol>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"01\">1. O que \u00e9 Web Scraping e como funciona?<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"O Web Scraping vai poupar-lhe imenso tempo PARA SEMPRE\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/QUKRkIYg6as?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Web scraping (tamb\u00e9m conhecido como web harvesting ou extra\u00e7\u00e3o de dados) \u00e9 o processo de extra\u00e7\u00e3o autom\u00e1tica de dados de s\u00edtios Web, servi\u00e7os Web e aplica\u00e7\u00f5es Web. <\/p>\n\n\n\n<p>O Web scraping ajuda-nos a evitar ter de entrar em cada s\u00edtio Web e obter dados manualmente - um processo longo e ineficaz. O processo envolve a utiliza\u00e7\u00e3o de scripts ou programas automatizados. O script ou programa acede \u00e0 estrutura HTML da p\u00e1gina Web, analisa os dados e extrai os elementos espec\u00edficos necess\u00e1rios da p\u00e1gina para an\u00e1lise posterior. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"05\">a. Para que \u00e9 utilizada a raspagem da Web?<\/h3>\n\n\n\n<p>O Web scraping \u00e9 fant\u00e1stico se for feito de forma respons\u00e1vel. Geralmente, pode ser utilizada para pesquisar mercados, por exemplo, para obter informa\u00e7\u00f5es e conhecer as tend\u00eancias de um mercado espec\u00edfico. Tamb\u00e9m \u00e9 popular na monitoriza\u00e7\u00e3o da concorr\u00eancia para acompanhar a sua estrat\u00e9gia, pre\u00e7os, etc.<\/p>\n\n\n\n<p><strong>&nbsp;Os casos de utiliza\u00e7\u00e3o mais espec\u00edficos s\u00e3o: <\/strong><\/p>\n\n\n\n<ul>\n<li>Plataformas sociais (<a href=\"https:\/\/www.rapidseedbox.com\/blog\/twitter-facebook-scraper-guide\" target=\"_blank\" rel=\"noreferrer noopener\">Captura de dados do Facebook e do Twitter<\/a>)<\/li>\n\n\n\n<li>Monitoriza\u00e7\u00e3o em linha das altera\u00e7\u00f5es de pre\u00e7os, <\/li>\n\n\n\n<li>Coment\u00e1rios de produtos, <\/li>\n\n\n\n<li>Campanhas de SEO,<\/li>\n\n\n\n<li>Listagens de im\u00f3veis, <\/li>\n\n\n\n<li>Acompanhamento de dados meteorol\u00f3gicos, <\/li>\n\n\n\n<li>Monitorizar a reputa\u00e7\u00e3o de um s\u00edtio Web, <\/li>\n\n\n\n<li>Acompanhamento da disponibilidade e dos pre\u00e7os dos voos, <\/li>\n\n\n\n<li>Testar an\u00fancios, independentemente da localiza\u00e7\u00e3o geogr\u00e1fica, <\/li>\n\n\n\n<li>Controlo dos recursos financeiros, <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">b. Como funciona o Web Scraping? <\/h3>\n\n\n\n<p>Os elementos t\u00edpicos envolvidos na recolha de dados da Web s\u00e3o o iniciador e o alvo. O iniciador (web scraper) utiliza software de extra\u00e7\u00e3o autom\u00e1tica de dados para fazer scraping de s\u00edtios Web. Os alvos, por outro lado, s\u00e3o geralmente o conte\u00fado do s\u00edtio Web, informa\u00e7\u00f5es de contacto, formul\u00e1rios ou qualquer coisa publicamente dispon\u00edvel na Web.<\/p>\n\n\n\n<p><strong>O processo t\u00edpico \u00e9 o seguinte:&nbsp;<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>PASSO 1: <\/strong>O iniciador utiliza a ferramenta de raspagem - software (que pode ser um servi\u00e7o baseado na nuvem ou um script caseiro) para come\u00e7ar a gerar pedidos HTTP (utilizados para interagir com s\u00edtios Web e recuperar dados). Este software pode iniciar qualquer coisa, desde um pedido HTTP GET, POST, PUT, DELETE ou HEAD, at\u00e9 um pedido OPTIONS para um s\u00edtio Web alvo.&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_019.png\"><img decoding=\"async\" loading=\"lazy\" width=\"979\" height=\"526\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_019.png\" alt=\"como funciona a raspagem da web\" class=\"wp-image-17251\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_019.png 979w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_019-300x161.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_019-18x10.png 18w\" sizes=\"(max-width: 979px) 100vw, 979px\" \/><\/a><\/figure>\n\n\n\n<ul>\n<li><strong>PASSO 2.<\/strong> Se a p\u00e1gina existir, o s\u00edtio Web de destino responder\u00e1 ao pedido do scraper com HTTP\/1.0 200 OK (a resposta t\u00edpica aos visitantes). Quando o scraper recebe a resposta HTML (por exemplo, 200 OK), procede ent\u00e3o \u00e0 an\u00e1lise do documento e recolhe os seus dados n\u00e3o estruturados.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_020.png\"><img decoding=\"async\" loading=\"lazy\" width=\"980\" height=\"525\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_020.png\" alt=\"an\u00e1lise e recolha de dados\" class=\"wp-image-17252\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_020.png 980w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_020-300x161.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_020-18x10.png 18w\" sizes=\"(max-width: 980px) 100vw, 980px\" \/><\/a><\/figure>\n\n\n\n<ul>\n<li><strong>PASSO 3<\/strong>. O software de recolha de dados extrai os dados em bruto, armazena-os e adiciona-lhes estrutura (\u00edndices) de acordo com o que foi especificado pelo iniciador. Os dados estruturados s\u00e3o acess\u00edveis atrav\u00e9s de formatos leg\u00edveis como XLS, CSV, SQL ou XML.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web-Scraping-works-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"983\" height=\"534\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web-Scraping-works-1.png\" alt=\"estrutura\u00e7\u00e3o de dados\" class=\"wp-image-17254\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web-Scraping-works-1.png 983w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web-Scraping-works-1-300x163.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web-Scraping-works-1-18x10.png 18w\" sizes=\"(max-width: 983px) 100vw, 983px\" \/><\/a><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"02\">2. No\u00e7\u00f5es b\u00e1sicas de extra\u00e7\u00e3o de dados HTML: Seletores CSS e XPath.<\/h2>\n\n\n\n<p>Talvez j\u00e1 saiba o b\u00e1sico: <strong><em>O Web scraping envolve a extra\u00e7\u00e3o de dados de s\u00edtios Web, e tudo come\u00e7a com HTML-<\/em><\/strong>a espinha dorsal das p\u00e1ginas Web. Num ficheiro HTML, encontrar\u00e1 classes e IDs, tabelas, listas, blocos ou contentores - todos os elementos b\u00e1sicos que constituem a estrutura de uma p\u00e1gina.<\/p>\n\n\n\n<p>O CSS, por outro lado, \u00e9 uma linguagem de folha de estilos utilizada para controlar a apresenta\u00e7\u00e3o e a disposi\u00e7\u00e3o dos documentos HTML. Define a forma como os elementos HTML s\u00e3o apresentados numa p\u00e1gina Web, como cores, tipos de letra, margens e posicionamento. O CSS desempenha um papel fundamental na raspagem da Web, pois ajuda a extrair dados dos elementos desejados.&nbsp;<\/p>\n\n\n\n<p><strong><em>Nota: <\/em><\/strong><em>Explicar em pormenor o que \u00e9 HTML e CSS e como funcionam est\u00e1 fora do \u00e2mbito deste artigo. Partimos do princ\u00edpio de que j\u00e1 possui os conhecimentos fundamentais de HTML e CSS.&nbsp;<\/em><\/p>\n\n\n\n<p>Embora seja poss\u00edvel extrair dados diretamente do HTML em bruto utilizando v\u00e1rias t\u00e9cnicas, como express\u00f5es regulares, isso pode ser muito moroso e dif\u00edcil. Uma vez que a linguagem estruturada do HTML foi concebida para ser \"leg\u00edvel por m\u00e1quinas\", pode tornar-se muito complexa e variada. <strong>\u00c9 aqui que os selectores CSS e XPath desempenham um papel fundamental.&nbsp;<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a. Compila\u00e7\u00e3o e inspe\u00e7\u00e3o de HTML.&nbsp;<\/h3>\n\n\n\n<p>Na sec\u00e7\u00e3o seguinte, forneceremos alguns exemplos de selectores CSS e XPath (compilados e inspeccionados). Todos os seguintes exemplos de HTML e CSS foram compilados com o editor online <a href=\"https:\/\/html-css-js.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML-CSS-JS<\/a>.<\/p>\n\n\n\n<p><strong>Quando se trata de inspecionar o c\u00f3digo HTML em s\u00edtios Web,<\/strong> Os navegadores Web v\u00eam com ferramentas de desenvolvimento, pelo que pode literalmente inspecionar o HTML ou CSS que est\u00e1 publicamente dispon\u00edvel em qualquer s\u00edtio Web. Pode clicar com o bot\u00e3o direito do rato numa p\u00e1gina Web e selecionar \"Inspecionar\", \"Inspecionar elemento\" ou \"Inspecionar fonte\". Para uma melhor compara\u00e7\u00e3o lado a lado da p\u00e1gina e da din\u00e2mica do c\u00f3digo, no navegador Chrome &gt; aceda aos tr\u00eas pontos no canto superior esquerdo (1) &gt; Mais ferramentas (2) &gt; Ferramentas de desenvolvimento (3).&nbsp;<\/p>\n\n\n\n<p>As ferramentas de desenvolvedor v\u00eam com um filtro de pesquisa \u00fatil (4) que permite pesquisar por string, seletor ou XPath. Como exemplo, vamos extrair alguns dados de: https:\/\/www.rapidseedbox.com\/blog\/twitter-facebook-scraper-guide.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_1-1024x513-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"513\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_1-1024x513-1.png\" alt=\"No\u00e7\u00f5es b\u00e1sicas de raspagem da Web\" class=\"wp-image-22062\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_1-1024x513-1.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_1-1024x513-1-300x150.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_1-1024x513-1-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">b. Seletores CSS:&nbsp;<\/h3>\n\n\n\n<p>Os selectores CSS s\u00e3o padr\u00f5es utilizados para selecionar e direcionar os elementos HTML de uma p\u00e1gina Web. S\u00e3o \u00fateis para a extra\u00e7\u00e3o (e estiliza\u00e7\u00e3o) da Web, uma vez que proporcionam uma forma mais eficiente e direccionada de obter dados de documentos HTML. Embora seja poss\u00edvel extrair dados diretamente do HTML em bruto utilizando v\u00e1rias t\u00e9cnicas, como express\u00f5es regulares, os selectores CSS oferecem v\u00e1rias vantagens que os tornam a escolha preferida para a extra\u00e7\u00e3o de dados da Web.<\/p>\n\n\n\n<p><strong>T\u00e9cnicas para direcionar e selecionar elementos HTML numa p\u00e1gina Web:<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>i. Sele\u00e7\u00e3o de n\u00f3s.<\/strong><\/h4>\n\n\n\n<p>A sele\u00e7\u00e3o de n\u00f3s \u00e9 o processo de escolha de elementos HTML com base nos seus nomes de n\u00f3s. Por exemplo, selecionar todos os elementos 'p' ou todos os elementos 'a' de uma p\u00e1gina. Esta t\u00e9cnica permite-lhe selecionar tipos espec\u00edficos de elementos no documento HTML.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_027.40.png\"><img decoding=\"async\" loading=\"lazy\" width=\"808\" height=\"159\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_027.40.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22256\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_027.40.png 808w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_027.40-300x59.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_027.40-18x4.png 18w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"474\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8-1024x474.png\" alt=\"Selectores CSS\" class=\"wp-image-17274\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8-1024x474.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8-300x139.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8-18x8.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_8.png 1334w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Foto de <a href=\"https:\/\/html-css-js.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML-CSS-JS<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p><strong>Exemplo da vida real:<\/strong> Pesquisa manual de H2s.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_11-1024x481-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"481\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_11-1024x481-1.png\" alt=\"No\u00e7\u00f5es b\u00e1sicas sobre o Web scraper\" class=\"wp-image-22015\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_11-1024x481-1.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_11-1024x481-1-300x141.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_11-1024x481-1-18x8.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>ii. Classe.<\/strong><\/h4>\n\n\n\n<p>Nos Seletores CSS, a sele\u00e7\u00e3o de classe envolve a sele\u00e7\u00e3o de elementos HTML com base no atributo de classe atribu\u00eddo. O atributo de classe permite-lhe aplicar um nome de classe espec\u00edfico a um ou mais elementos. Al\u00e9m disso, nos estilos CSS ou JavaScript, pode ser aplicado a todos os elementos com essa classe. Exemplos de nomes de 'classe' s\u00e3o bot\u00f5es, elementos de formul\u00e1rio, menus de navega\u00e7\u00e3o, esquemas de grelha, entre outros.&nbsp;<\/p>\n\n\n\n<p><strong>Exemplo:<\/strong> O seguinte seletor CSS: 'highlight' seleccionar\u00e1 todos os elementos com o atributo de classe definido como \"highlight\".<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.00.png\"><img decoding=\"async\" loading=\"lazy\" width=\"807\" height=\"158\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.00.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22257\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.00.png 807w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.00-300x59.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.00-18x4.png 18w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.09.png\"><img decoding=\"async\" loading=\"lazy\" width=\"807\" height=\"185\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.09.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22258\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.09.png 807w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.09-300x69.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.09-18x4.png 18w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"464\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10-1024x464.png\" alt=\"Selectores CSS\" class=\"wp-image-17276\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10-1024x464.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10-300x136.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10-18x8.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_10.png 1440w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Foto de <a href=\"https:\/\/html-css-js.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML-CSS-JS<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p><strong>Exemplo da vida real:&nbsp;<\/strong>Pesquisa manual de turmas.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_4-1024x507-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"507\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_4-1024x507-1.png\" alt=\"No\u00e7\u00f5es b\u00e1sicas de raspagem da Web\" class=\"wp-image-22033\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_4-1024x507-1.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_4-1024x507-1-300x149.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_4-1024x507-1-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>iii. Restri\u00e7\u00f5es de ID.<\/strong><\/h4>\n\n\n\n<p>As restri\u00e7\u00f5es de ID ajudam a selecionar um elemento HTML com base no seu atributo de ID exclusivo. Este atributo de ID \u00e9 utilizado para identificar de forma \u00fanica um \u00fanico elemento na p\u00e1gina Web. Ao contr\u00e1rio das classes, que podem ser utilizadas em v\u00e1rios elementos, os IDs devem ser \u00fanicos dentro da p\u00e1gina.&nbsp;<\/p>\n\n\n\n<p><strong>Exemplo: <\/strong>O seletor CSS \"#header\" seleccionar\u00e1 o elemento com o atributo ID definido como \"header\".<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.22.png\"><img decoding=\"async\" loading=\"lazy\" width=\"805\" height=\"159\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.22.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22259\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.22.png 805w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.22-300x59.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.22-18x4.png 18w\" sizes=\"(max-width: 805px) 100vw, 805px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.46.png\"><img decoding=\"async\" loading=\"lazy\" width=\"807\" height=\"132\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.46.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22260\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.46.png 807w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.46-300x49.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_028.46-18x3.png 18w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"472\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2-1024x472.png\" alt=\"Selectores CSS\" class=\"wp-image-17268\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2-1024x472.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2-300x138.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2-18x8.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_2.png 1438w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\"><em>Foto de <a href=\"https:\/\/html-css-js.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">HTML-CSS-JS<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<p><strong>Exemplo da vida real:<\/strong> Procura manual de IDs. Depois de encontrar o #01, \u00e9 necess\u00e1rio localizar o id=\"01\u2033<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-markers.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"520\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-markers.png\" alt=\"pesquisa de IDs\" class=\"wp-image-22473\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-markers.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-markers-300x152.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-markers-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>iv. Correspond\u00eancia de atributos.<\/strong><\/h4>\n\n\n\n<p>Esta t\u00e9cnica envolve a sele\u00e7\u00e3o de elementos HTML com base em atributos espec\u00edficos e respectivos valores. Permite-lhe selecionar elementos que tenham um determinado atributo ou valor de atributo. Existem diferentes tipos de correspond\u00eancia de atributos, como a correspond\u00eancia exacta, a correspond\u00eancia de substring, etc.<\/p>\n\n\n\n<p><strong>Exemplo: <\/strong>O exemplo seguinte mostra um atributo personalizado denominado tipo de dados. Para direcionar ou estilizar determinados itens (por exemplo, itens de lista marcados como \"fruta\"), pode utilizar o seletor CSS que selecciona elementos com base nos seus valores de atributo.<\/p>\n\n\n\n<p>Para recolher apenas os itens marcados como \"fruta\", pode utilizar o seguinte seletor CSS:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.16.png\"><img decoding=\"async\" loading=\"lazy\" width=\"807\" height=\"134\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.16.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22262\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.16.png 807w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.16-300x50.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.16-18x3.png 18w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"436\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6-1024x436.png\" alt=\"Selectores CSS\" class=\"wp-image-17272\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6-1024x436.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6-300x128.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6-18x8.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_6.png 1413w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Exemplo da vida real:<\/strong> Pesquisa manual de atributos.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/data-type.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"487\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/data-type.png\" alt=\"pesquisa de atributos\" class=\"wp-image-22334\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/data-type.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/data-type-300x143.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/data-type-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">c. Selectores Xpath:<\/h3>\n\n\n\n<p>Os seletores CSS s\u00e3o ideais para tarefas diretas de raspagem da Web em que a estrutura HTML \u00e9 relativamente simples. Mas quando a estrutura HTML se torna mais intrincada e complexa, existe outra solu\u00e7\u00e3o: Os selectores XPath.&nbsp;<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/www.w3schools.com\/xml\/xpath_syntax.asp\" target=\"_blank\" rel=\"noreferrer noopener\">Seletores XPath (seletores de linguagem de caminho XML)<\/a> \u00e9 uma linguagem de caminho flex\u00edvel utilizada para navegar atrav\u00e9s dos elementos de um documento XML ou HTML. <\/strong>Ajudam a selecionar n\u00f3s espec\u00edficos no c\u00f3digo HTML com base na localiza\u00e7\u00e3o, nomes, atributos ou conte\u00fado. Os selectores XPath tamb\u00e9m podem ser \u00fateis para selecionar elementos com base nos seus atributos de classe e ID.<\/p>\n\n\n\n<p><strong>Eis tr\u00eas exemplos de selectores XPath para recolha de dados da Web.<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>i. Exemplo 1: Express\u00e3o XPath: ' \/\/a<\/strong><\/h4>\n\n\n\n<p>A express\u00e3o XPath ' \/\/a' selecciona todos os elementos '<a>' na p\u00e1gina, independentemente da sua localiza\u00e7\u00e3o no documento. A seguinte captura de ecr\u00e3 mostra a localiza\u00e7\u00e3o manual de todos os elementos '<a>' na p\u00e1gina.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/scraping-links.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"494\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/scraping-links.png\" alt=\"elementos na p\u00e1gina\" class=\"wp-image-22425\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/scraping-links.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/scraping-links-300x145.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/scraping-links-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>ii. Exemplo 2: ' \/\/h2[1]\/text()'<\/strong><\/h4>\n\n\n\n<p>A express\u00e3o XPath:<\/p>\n\n\n\n<p><strong>' \/\/h2[1]\/text() '<\/strong><\/p>\n\n\n\n<p>Seleccionar\u00e1 o conte\u00fado de texto do primeiro t\u00edtulo h2 na p\u00e1gina. O \u00edndice '[1]' \u00e9 utilizado para especificar a primeira ocorr\u00eancia do elemento h2, pode tamb\u00e9m especificar a segunda ocorr\u00eancia com o \u00edndice '[2]', e assim por diante. A seguinte captura de ecr\u00e3 mostra a localiza\u00e7\u00e3o manual do primeiro t\u00edtulo h2 na p\u00e1gina utilizando este seletor XPath.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-headings.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"512\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-headings.png\" alt=\"selectores xpath - t\u00edtulos\" class=\"wp-image-22376\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-headings.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-headings-300x150.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/finding-headings-18x9.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>iii. Exemplo 3. ' \/\/* [@data-type=\"form\"]'<\/strong><\/h4>\n\n\n\n<p>A express\u00e3o XPath ` \/\/* [@data-type=\"form\"]` selecciona todos os elementos que t\u00eam um atributo de dados com o valor \"form\". O s\u00edmbolo `*` indica que qualquer elemento com o atributo de dados especificado ser\u00e1 selecionado, independentemente do seu nome de n\u00f3. A seguinte captura de ecr\u00e3 mostra o processo de localiza\u00e7\u00e3o manual dos elementos com o valor \"form\".<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_5-1024x479-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"479\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_5-1024x479-1.png\" alt=\"No\u00e7\u00f5es b\u00e1sicas de raspagem da Web\" class=\"wp-image-22011\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_5-1024x479-1.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_5-1024x479-1-300x140.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Basics_5-1024x479-1-18x8.png 18w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>A inspe\u00e7\u00e3o visual e a extra\u00e7\u00e3o manual de dados de uma p\u00e1gina HTML utilizando estes selectores CSS e XPath pode n\u00e3o s\u00f3 ser morosa como tamb\u00e9m propensa a erros. Al\u00e9m disso, a extra\u00e7\u00e3o manual ou visual de dados \u00e9 completamente inadequada para a recolha de dados em grande escala ou para tarefas de raspagem repetitivas. \u00c9 aqui que o scripting e a programa\u00e7\u00e3o s\u00e3o altamente ben\u00e9ficos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-text-align-center\"><strong>Impulsione o seu web scraping com proxies r\u00e1pidos, seguros e an\u00f3nimos da RapidSeedbox.<\/strong><\/h4>\n\n\n\n<div class=\"wp-block-group is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-2\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.rapidseedbox.com\/pt\/proxy\/?blog=web-scraping\" style=\"background-color:#22c55e\"><strong>Come\u00e7ar a raspar!<\/strong><\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Quais s\u00e3o as melhores linguagens de programa\u00e7\u00e3o para a recolha de dados da Web? <\/strong><\/h4>\n\n\n\n<p><strong>A linguagem de programa\u00e7\u00e3o mais popular para scraping \u00e9 Python devido \u00e0s suas bibliotecas e pacotes (mais sobre isto na pr\u00f3xima sec\u00e7\u00e3o). Outra linguagem de programa\u00e7\u00e3o popular para <a href=\"https:\/\/www.rapidseedbox.com\/blog\/web-scraping-with-r\" target=\"_blank\" rel=\"noreferrer noopener\">a raspagem da Web \u00e9 R<\/a>pois este tamb\u00e9m possui um conjunto fant\u00e1stico de bibliotecas e estruturas suportadas.<\/strong> Al\u00e9m disso, tamb\u00e9m vale a pena mencionar o C# - uma linguagem de programa\u00e7\u00e3o popular que muitos raspadores da Web utilizam. Sites como o ZenRows t\u00eam guias completos sobre <strong><a href=\"https:\/\/www.zenrows.com\/blog\/web-scraping-c-sharp\" target=\"_blank\" rel=\"noreferrer noopener\">como extrair dados de um s\u00edtio web em C#<\/a><\/strong>o que torna mais f\u00e1cil para os programadores compreenderem o processo e iniciarem os seus pr\u00f3prios projectos.<\/p>\n\n\n\n<p>Por uma quest\u00e3o de simplicidade, este guia de web scraping centrar-se-\u00e1 no web scraping com Python. Continue a ler!<\/p>\n\n\n\n<div style=\"height:16px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"03\">3. Web Scraping com Python (com c\u00f3digo).<\/h2>\n\n\n\n<p><strong>Por que raz\u00e3o inspeccionaria visualmente e extrairia manualmente dados HTML utilizando selectores CSS ou selectores XPath quando pode utiliz\u00e1-los de forma sistem\u00e1tica e autom\u00e1tica com linguagens de programa\u00e7\u00e3o?  <\/strong><\/p>\n\n\n\n<p>Existem muitas bibliotecas e estruturas populares de recolha de dados da Web que suportam selectores CSS para facilitar a extra\u00e7\u00e3o de dados. Uma das linguagens de programa\u00e7\u00e3o mais populares para a extra\u00e7\u00e3o de dados da Web \u00e9 a <a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a>, para as suas bibliotecas como <a href=\"https:\/\/www.crummy.com\/software\/BeautifulSoup\/bs4\/doc\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bela Sopa<\/a>, <a href=\"https:\/\/pypi.org\/project\/requests\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pedidos<\/a>, <a href=\"https:\/\/cssselect.readthedocs.io\/en\/latest\/\" target=\"_blank\" rel=\"noreferrer noopener\">CSS-Select<\/a>, <a href=\"https:\/\/pypi.org\/project\/selenium\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sel\u00e9nio<\/a>, e <a href=\"https:\/\/scrapy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Scrapy<\/a>. <strong>Estas bibliotecas permitem aos web scrapers tirar partido dos selectores CSS e XPath para extrair dados de forma eficiente.<\/strong> <\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Bela sopa.&nbsp;<\/strong><\/h4>\n\n\n\n<p>O BeautifulSoup \u00e9 um dos mais populares e poderosos pacotes Python concebidos para analisar documentos HTML e XML. Este pacote cria uma \u00e1rvore de an\u00e1lise das p\u00e1ginas, permitindo-lhe extrair facilmente dados de HTML.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong><em>Um facto interessante! <\/em><\/strong><em>Na luta contra a COVID-19, <\/em><a href=\"https:\/\/github.com\/BlankerL\/DXY-COVID-19-Crawler\/blob\/master\/service\/crawler.py\" target=\"_blank\" rel=\"noreferrer noopener\"><em>DXY-COVID-19-Crawler de Jiabao Lin<\/em><\/a><em> utilizou a BeautifulSoup para extrair dados valiosos de um s\u00edtio Web m\u00e9dico chin\u00eas. Ao faz\u00ea-lo, ajudou os investigadores a monitorizar e a compreender a propaga\u00e7\u00e3o do v\u00edrus. [<a href=\"https:\/\/www.crummy.com\/software\/BeautifulSoup\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fonte<\/a>]<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Pedidos.&nbsp;<\/strong><\/h4>\n\n\n\n<p>O <a href=\"https:\/\/pypi.org\/project\/requests\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pedidos<\/a> \u00e9 uma biblioteca HTTP simples mas poderosa. \u00c9 \u00fatil para efetuar pedidos HTTP para obter dados de s\u00edtios Web. \"Requests\" simplifica o processo de envio de pedidos HTTP e o tratamento de respostas no seu projeto Python de recolha de dados da Web.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a. Tutorial para Web Scraping com Python (+ C\u00f3digo)<\/h3>\n\n\n\n<p>Neste tutorial de web scraping com Python, vamos obter dados de um site HTML de destino usando o c\u00f3digo Python com os \"requests\" e a biblioteca BeautifulSoup.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Pr\u00e9-requisitos:<\/strong><\/h4>\n\n\n\n<p>Certifique-se de que os seguintes pr\u00e9-requisitos s\u00e3o cumpridos:<\/p>\n\n\n\n<ul>\n<li><strong>Ambiente Python:<\/strong> Certifique-se de que tem <a href=\"https:\/\/www.python.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a> instalado no seu computador. Al\u00e9m disso, certifique-se de que pode executar o script no seu ambiente Python preferido (por exemplo, <a href=\"https:\/\/docs.python.org\/es\/3\/library\/idle.html\" target=\"_blank\" rel=\"noreferrer noopener\">IDLE<\/a> ou <a href=\"https:\/\/jupyter.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Bloco de notas Jupyter<\/a>).&nbsp;<\/li>\n\n\n\n<li><strong>Biblioteca de pedidos:<\/strong> Instale a biblioteca `requests`. Ela \u00e9 utilizada para enviar requisi\u00e7\u00f5es HTTP GET para a URL especificada. Voc\u00ea pode instal\u00e1-la usando `pip` executando `pip install requests` no seu prompt de comando ou terminal.<\/li>\n\n\n\n<li><strong>Biblioteca BeautifulSoup: <\/strong>Instale a biblioteca `beautifulsoup4`. Voc\u00ea pode instal\u00e1-la utilizando o `pip` executando `pip install beautifulsoup4` no seu terminal.<\/li>\n<\/ul>\n\n\n\n<p><strong>O c\u00f3digo Python para a recolha de dados de uma p\u00e1gina (com BeautifulSoup)<\/strong><\/p>\n\n\n\n<p>O script seguinte vai buscar o URL especificado, analisar o conte\u00fado HTML utilizando o BeautifulSoup e imprimir os t\u00edtulos dos principais artigos de not\u00edcias na p\u00e1gina Web.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.56.png\"><img decoding=\"async\" loading=\"lazy\" width=\"808\" height=\"568\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.56.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22263\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.56.png 808w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.56-300x211.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_029.56-18x12.png 18w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/a><\/figure>\n\n\n\n<p>Ao executar o script no Shell IDLE, o ecr\u00e3 imprime todos os \"news_titles\" recolhidos do site visado. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1.png\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"512\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1-1024x512.png\" alt=\"executar script na shell IDLE\" class=\"wp-image-28662\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1-1024x512.png 1024w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1-300x150.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1-18x9.png 18w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/script-on-idle-shell-1.png 1365w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">b. Varia\u00e7\u00f5es do nosso c\u00f3digo Python para raspagem da web.&nbsp;<\/h3>\n\n\n\n<p>Podemos pegar no nosso c\u00f3digo Python de recolha de dados da Web anterior e fazer algumas varia\u00e7\u00f5es para recolher diferentes tipos de dados.&nbsp;<\/p>\n\n\n\n<p><strong>Por exemplo:&nbsp;<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>Encontrar imagens: <\/strong>Para encontrar todas as etiquetas de imagem (<img>) na p\u00e1gina Web, pode utilizar o m\u00e9todo find_all() com o nome da etiqueta 'img':<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.21.png\"><img decoding=\"async\" loading=\"lazy\" width=\"805\" height=\"208\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.21.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22264\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.21.png 805w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.21-300x78.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.21-18x5.png 18w\" sizes=\"(max-width: 805px) 100vw, 805px\" \/><\/a><\/figure>\n\n\n\n<ul>\n<li><strong>Encontrar liga\u00e7\u00f5es: <\/strong>Para encontrar todas as etiquetas \u00e2ncora (<a>) que representam liga\u00e7\u00f5es na p\u00e1gina Web, pode utilizar o m\u00e9todo find_all() com o nome da etiqueta 'a':<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.28.png\"><img decoding=\"async\" loading=\"lazy\" width=\"806\" height=\"210\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.28.png\" alt=\"Exemplo de raspagem da Web\" class=\"wp-image-22265\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.28.png 806w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.28-300x78.png 300w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/Web_Scraping_Examples_030.28-18x5.png 18w\" sizes=\"(max-width: 806px) 100vw, 806px\" \/><\/a><\/figure>\n\n\n\n<p>O script fornecido (juntamente com varia\u00e7\u00f5es) \u00e9 um script b\u00e1sico de raspagem da Web. Simplesmente extrai e imprime os t\u00edtulos dos principais artigos de not\u00edcias a partir do URL especificado. Mas, infelizmente, este script simples carece de muitas funcionalidades que comp\u00f5em um projeto de recolha de dados da Web mais abrangente. <strong><em>H\u00e1 v\u00e1rios elementos que pode querer considerar, nomeadamente o armazenamento de dados, o tratamento de erros, a pagina\u00e7\u00e3o\/rastreio, a utiliza\u00e7\u00e3o de agentes de utilizador e cabe\u00e7alhos, as medidas de limita\u00e7\u00e3o e de cortesia e a capacidade de tratar conte\u00fados din\u00e2micos.<\/em><\/strong>&nbsp;<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"06\">4. A raspagem da Web \u00e9 legal?&nbsp;<\/h2>\n\n\n\n<p>A recolha de dados da Web \u00e9 geralmente vista como controversa ou ilegal. Mas, na realidade, trata-se de uma pr\u00e1tica leg\u00edtima que, se respeitar certos limites \u00e9ticos e legais, \u00e9 perfeitamente legal. <\/p>\n\n\n\n<p>A legalidade da raspagem da Web depende da natureza dos dados que est\u00e3o a ser extra\u00eddos e dos m\u00e9todos utilizados. <strong>A raspagem da Web \u00e9 considerada legal quando \u00e9 utilizada para recolher informa\u00e7\u00f5es publicamente dispon\u00edveis na Internet. <\/strong>No entanto, \u00e9 sempre necess\u00e1rio ter cuidado, especialmente quando se trata de dados pessoais ou de conte\u00fados protegidos por direitos de autor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Eis algumas indica\u00e7\u00f5es a ter em conta:<\/strong><\/h3>\n\n\n\n<ul>\n<li><strong>N\u00e3o recolher dados privados. <\/strong>Tamb\u00e9m \u00e9 ilegal extrair dados que n\u00e3o estejam publicamente dispon\u00edveis. A extra\u00e7\u00e3o de dados por detr\u00e1s de uma p\u00e1gina de in\u00edcio de sess\u00e3o, com in\u00edcio de sess\u00e3o de utilizador e palavra-passe, \u00e9 contra a lei nos EUA, Canad\u00e1 e na maior parte da Europa.&nbsp;<\/li>\n\n\n\n<li><strong>O que se faz com os dados \u00e9 que pode causar problemas.<\/strong> A raspagem \u00e9tica da Web implica ter em aten\u00e7\u00e3o os dados que est\u00e3o a ser recolhidos e o fim a que se destinam. Deve ser dada especial aten\u00e7\u00e3o aos dados pessoais e \u00e0 propriedade intelectual. Certifique-se de que est\u00e1 a cumprir regulamentos como o RGPD e a CCPA, que regem o tratamento de dados pessoais. Por exemplo, a reutiliza\u00e7\u00e3o ou revenda de conte\u00fados ou o descarregamento de material protegido por direitos de autor \u00e9 ilegal (e deve ser evitado).<\/li>\n\n\n\n<li><strong>\u00c9 tamb\u00e9m essencial rever os Termos de Servi\u00e7o dos s\u00edtios Web. <\/strong>Trata-se de documentos que indicam a qualquer pessoa que utilize o seu servi\u00e7o ou conte\u00fado a forma como deve ou n\u00e3o interagir com os recursos. <\/li>\n\n\n\n<li><strong>Garanta sempre alternativas como a utiliza\u00e7\u00e3o de APIs fornecidas oficialmente.<\/strong> Some websites like Government agencies, Weather, and Social media platforms make some of their data accessible to the public via APIs.&nbsp;<\/li>\n\n\n\n<li><strong>Considere a possibilidade de verificar o ficheiro robots.txt.<\/strong> This file is saved on the web server and gives directions to web crawlers and web scraping about what parts of a website to avoid and what parts are authorized. It also gives directions about the <a href=\"https:\/\/www.rapidseedbox.com\/blog\/web-scraping-rate-limiting\" target=\"_blank\" rel=\"noreferrer noopener\">rate limits<\/a>. <\/li>\n\n\n\n<li><strong>Evitar iniciar ataques de raspagem da Web.&nbsp;<\/strong>Dependendo do contexto, por vezes a raspagem da Web \u00e9 referida como um ataque de raspagem. Quando os spammers utilizam botnets (ex\u00e9rcitos de bots) para atacar um s\u00edtio Web com pedidos grandes e r\u00e1pidos, todo o servi\u00e7o do s\u00edtio Web pode falhar. Os ataques de raspagem de dados em grande escala podem deitar abaixo s\u00edtios inteiros.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Not\u00edcias recentes sobre os aspectos jur\u00eddicos da raspagem da Web.<\/strong><\/h3>\n\n\n\n<p><strong> <\/strong>Decis\u00f5es jur\u00eddicas recentes clarificaram que a recolha de dados publicamente dispon\u00edveis n\u00e3o \u00e9 geralmente considerada uma viola\u00e7\u00e3o. Uma decis\u00e3o hist\u00f3rica do tribunal de recurso dos EUA reafirmou a legalidade da recolha de dados na Web, declarando que a recolha de dados acess\u00edveis ao p\u00fablico na Internet n\u00e3o viola a Lei sobre Fraude e Abuso de Computadores (CFAA) [fonte <a href=\"https:\/\/techcrunch.com\/2022\/04\/18\/web-scraping-legal-court\/\" target=\"_blank\" rel=\"noreferrer noopener\">TechCrunch<\/a>].<\/p>\n\n\n\n<p>Noutras not\u00edcias, os recentes processos judiciais contra a OpenAI e a Microsoft p\u00f5em em evid\u00eancia as preocupa\u00e7\u00f5es com a privacidade, a propriedade intelectual e as leis anti-hacking, de acordo com not\u00edcias recentes [<a href=\"https:\/\/news.bloomberglaw.com\/ip-law\/openais-legal-woes-driven-by-unclear-mesh-of-web-scraping-laws\" target=\"_blank\" rel=\"noreferrer noopener\">Bloomberg<\/a>]. Embora a CFAA tenha uma efic\u00e1cia limitada, est\u00e3o a ser exploradas as reivindica\u00e7\u00f5es de viola\u00e7\u00e3o de contrato e as leis estatais em mat\u00e9ria de privacidade. A intera\u00e7\u00e3o entre os direitos de autor e o direito dos contratos continua por resolver, deixando muitas quest\u00f5es por responder no contexto da raspagem da Web.<\/p>\n\n\n\n<p>Nas \u00faltimas not\u00edcias, [fonte: <a href=\"https:\/\/timesofindia.indiatimes.com\/gadgets-news\/explained-what-is-data-scraping-and-why-elon-musk-is-changing-twitter-rules-over-it\/articleshow\/101451275.cms\" target=\"_blank\" rel=\"noreferrer noopener\">IndiaTimes<\/a>] Elon Musk est\u00e1 a alterar as regras do Twitter para evitar n\u00edveis extremos de recolha de dados. De acordo com Musk, o \"web scraping\" extremo tem um impacto negativo na experi\u00eancia do utilizador. Ele sugeriu que a culpa \u00e9 das organiza\u00e7\u00f5es que usam modelos de linguagem grandes para IA generativa. <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"08\">5. Como \u00e9 que os s\u00edtios Web tentam bloquear a raspagem da Web?&nbsp;<\/h2>\n\n\n\n<p>As empresas querem que alguns dos seus dados sejam acess\u00edveis a visitantes humanos. Mas quando as empresas ou os utilizadores utilizam scripts ou bots automatizados para extrair dados do s\u00edtio de forma agressiva, pode haver muita privacidade e abuso de recursos num servidor e p\u00e1gina Web alvo. Estes s\u00edtios v\u00edtimas preferem impedir este tipo de tr\u00e1fego.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"09\">T\u00e9cnicas anti-scraping.<\/h3>\n\n\n\n<ul>\n<li><strong>Quantidades invulgares e elevadas de tr\u00e1fego provenientes de uma \u00fanica fonte.&nbsp;<\/strong>Os servidores Web podem utilizar WAFs (Web Application Firewalls) com listas negras de endere\u00e7os IP ruidosos para bloquear o tr\u00e1fego, filtros para taxas e tamanhos \"invulgares\" de pedidos e mecanismos de filtragem. Alguns s\u00edtios utilizam uma combina\u00e7\u00e3o de WAF e CDN (Content Delivery Networks) para filtrar totalmente ou reduzir o ru\u00eddo desses IPs. <\/li>\n\n\n\n<li><strong>Alguns s\u00edtios Web podem detetar padr\u00f5es de navega\u00e7\u00e3o do tipo bot.<\/strong>&nbsp;\u00c0 semelhan\u00e7a da t\u00e9cnica anterior, os s\u00edtios Web tamb\u00e9m bloqueiam pedidos com base no User-Agent (cabe\u00e7alho HTTP). Os bots n\u00e3o utilizam um browser normal. Estes bots t\u00eam diferentes sequ\u00eancias de user-agent (ou seja, crawler, spider ou bot), uma falta de varia\u00e7\u00e3o, uma aus\u00eancia de cabe\u00e7alhos (<a href=\"https:\/\/www.rapidseedbox.com\/blog\/headless-browser-guide\" target=\"_blank\" rel=\"noreferrer noopener\">navegadores sem cabe\u00e7a<\/a>), solicitar taxas e muito mais. <\/li>\n\n\n\n<li><strong>Os s\u00edtios Web tamb\u00e9m alteram frequentemente a sua marca\u00e7\u00e3o HTML.<\/strong> Os bots de raspagem da Web seguem uma rota consistente de \"marca\u00e7\u00e3o HTML\" ao percorrerem o conte\u00fado de um s\u00edtio Web. Alguns s\u00edtios Web alteram os elementos HTML dentro da marca\u00e7\u00e3o de forma regular e aleat\u00f3ria. Esta t\u00e9cnica afasta um bot do seu h\u00e1bito ou hor\u00e1rio regular de scraping. Alterar a marca\u00e7\u00e3o HTML n\u00e3o impede a raspagem da Web, mas torna-a muito mais dif\u00edcil.&nbsp;<\/li>\n\n\n\n<li><strong>A utiliza\u00e7\u00e3o de desafios como o CAPTCHA.<\/strong> Para evitar que os bots utilizem navegadores sem cabe\u00e7a, alguns s\u00edtios Web exigem desafios CAPTCHA. Os robots que utilizam browsers sem cabe\u00e7a t\u00eam dificuldade em resolver este tipo de desafios. Os CAPTCHAs foram criados para serem resolvidos ao n\u00edvel do utilizador (atrav\u00e9s do browser) e n\u00e3o por rob\u00f4s.&nbsp;<\/li>\n\n\n\n<li><strong>Alguns s\u00edtios s\u00e3o armadilhas (honeypots) para bots de raspagem. <\/strong>Alguns s\u00edtios Web s\u00e3o criados apenas para apanhar bots de raspagem - esta \u00e9 uma t\u00e9cnica designada por honeypots. Estes honeypots s\u00f3 s\u00e3o vis\u00edveis por bots de raspagem (e n\u00e3o por visitantes humanos comuns) e s\u00e3o constru\u00eddos para conduzir os web scrapers a uma armadilha.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"010\">6. Pr\u00e1ticas \u00e9ticas e recomendadas para a raspagem da Web.<\/h2>\n\n\n\n<p><strong>A recolha de dados da Web deve ser feita de forma respons\u00e1vel e \u00e9tica<\/strong>. Como j\u00e1 foi referido, a leitura dos Termos e Condi\u00e7\u00f5es ou ToS deve dar-lhe uma ideia das restri\u00e7\u00f5es a que tem de obedecer. Se quiser ter uma ideia das regras de um Web crawler, consulte o seu ROBOTS.txt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"435\" height=\"235\" src=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/image6-2.png\" alt=\"Robots.txt Raspagem \u00e9tica da Web. \" class=\"wp-image-11405\" srcset=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/image6-2.png 435w, https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/image6-2-300x162.png 300w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><\/figure>\n\n\n\n<p><strong>Se a recolha de dados da Web for totalmente proibida ou bloqueada, utilize a sua API (se estiver dispon\u00edvel).<\/strong><\/p>\n\n\n\n<p>Al\u00e9m disso, tenha em aten\u00e7\u00e3o a largura de banda do s\u00edtio Web de destino para evitar sobrecarregar um servidor com demasiados pedidos. \u00c9 crucial automatizar os pedidos com uma taxa e tempos limite correctos para evitar sobrecarregar o servidor de destino. Simular um utilizador em tempo real deve ser o ideal. Al\u00e9m disso, nunca recolha dados atr\u00e1s de p\u00e1ginas de in\u00edcio de sess\u00e3o.<\/p>\n\n\n\n<p>Siga as regras e n\u00e3o ter\u00e1 problemas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"011\">Melhores pr\u00e1ticas de raspagem da Web.&nbsp;<\/h3>\n\n\n\n<ul>\n<li><strong>Utilizar um proxy.&nbsp;<\/strong>Um proxy \u00e9 um servidor intermedi\u00e1rio que encaminha pedidos. Ao fazer web scraping com um proxy, est\u00e1 a encaminhar o seu pedido original atrav\u00e9s dele. Assim, o proxy mapeia o pedido com o seu pr\u00f3prio IP e encaminha-o para o s\u00edtio Web de destino. Use um proxy para:\n<ul>\n<li><strong>Elimine as hip\u00f3teses de o seu IP ser colocado na lista negra ou bloqueado.<\/strong>&nbsp;Fazer sempre pedidos atrav\u00e9s de v\u00e1rios proxies- <a href=\"https:\/\/www.rapidseedbox.com\/pt\/proxy\/?blog=web-scraping\" target=\"_blank\" rel=\"noreferrer noopener\">Proxies IPv6<\/a>&nbsp;s\u00e3o um bom exemplo. Um pool de proxy pode ajud\u00e1-lo a efetuar pedidos de maior volume sem ser bloqueado.&nbsp;<\/li>\n\n\n\n<li><strong>Contornar o conte\u00fado geo-tailored.<\/strong>&nbsp;Um proxy numa regi\u00e3o espec\u00edfica \u00e9 \u00fatil para extrair dados de acordo com essa regi\u00e3o geogr\u00e1fica espec\u00edfica. Isto \u00e9 \u00fatil quando os s\u00edtios Web e os servi\u00e7os est\u00e3o atr\u00e1s de um CDN.&nbsp;<\/li>\n\n\n\n<li><strong>Proxies rotativos.<\/strong> Proxies rotativos pegam (rodam) um novo IP do pool para cada nova conex\u00e3o. Tenha em mente que <a href=\"https:\/\/www.rapidseedbox.com\/pt\/blog\/vpn-vs-proxy\" target=\"_blank\" rel=\"noreferrer noopener\">As VPN n\u00e3o s\u00e3o proxies.<\/a> Embora fa\u00e7am algo muito semelhante, que \u00e9 proporcionar o anonimato, funcionam a n\u00edveis diferentes. <\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><strong>Rodar<\/strong> <strong>UA (User Agents) e cabe\u00e7alhos de pedidos HTTP.&nbsp;<\/strong>Para rodar UAs e cabe\u00e7alhos HTTP, \u00e9 necess\u00e1rio recolher uma lista de cadeias de UA de navegadores Web reais. Coloque a lista no seu c\u00f3digo de recolha de dados da Web em Python e defina pedidos para escolher cadeias aleat\u00f3rias.<\/li>\n\n\n\n<li><strong>N\u00e3o ultrapasse os limites.&nbsp;<\/strong>Diminuir o n\u00famero de pedidos, rodar e aleatorizar. Se estiver a fazer um grande n\u00famero de pedidos para um Web site, comece por aleatorizar as coisas. Fa\u00e7a com que cada pedido pare\u00e7a aleat\u00f3rio e humano. Primeiro, altere o IP de cada pedido com a ajuda de proxies rotativos. Al\u00e9m disso, use cabe\u00e7alhos HTTP diferentes para fazer com que pare\u00e7a que os pedidos est\u00e3o a vir de outros navegadores.&nbsp;<\/li>\n<\/ul>\n\n\n\n<div style=\"height:16px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center\"><strong>Impulsione o seu web scraping com proxies r\u00e1pidos, seguros e an\u00f3nimos da RapidSeedbox.<\/strong><\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-4\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background wp-element-button\" href=\"https:\/\/www.rapidseedbox.com\/pt\/proxy\/?blog=web-scraping\" style=\"background-color:#22c55e\"><strong>Come\u00e7ar a raspar!<\/strong><\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:16px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"07\">7. FAQ sobre Web Scraping: Perguntas mais frequentes. <\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>a. O que \u00e9 o robots.txt e qual o seu papel na recolha de dados da Web?&nbsp;<\/strong><\/h4>\n\n\n\n<p>O ficheiro `robots.txt` serve como uma ferramenta de comunica\u00e7\u00e3o entre os propriet\u00e1rios de s\u00edtios Web, os Web crawlers e os \"scrapers\". Trata-se de um ficheiro de texto colocado no servidor de um s\u00edtio Web que fornece instru\u00e7\u00f5es aos robots da Web (crawlers, web spiders e outros bots automatizados) sobre as partes do s\u00edtio Web a que podem aceder e fazer scraping, e as partes que devem evitar. Os web crawlers \"bem comportados\" (como o Googlebot) foram concebidos para ler automaticamente o robots.txt. Os scrapers n\u00e3o foram concebidos para ler este ficheiro. Assim, ter conhecimento do ficheiro robots.txt \u00e9 muito importante para respeitar os desejos do propriet\u00e1rio do s\u00edtio Web.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>b. Que t\u00e9cnicas utilizam os administradores de s\u00edtios Web para evitar tentativas \"abusivas\" ou \"n\u00e3o autorizadas\" de recolha de dados da Web?<\/strong><\/h4>\n\n\n\n<p>Nem todos os scrapers extraem dados de forma \u00e9tica e legal. N\u00e3o cumprem os TOS (Termos de Servi\u00e7o) do s\u00edtio ou as directrizes do robots.txt. Por isso, os administradores do s\u00edtio podem tomar medidas adicionais para proteger os seus dados e recursos, como o bloqueio de IP ou desafios CAPTCHA. Podem tamb\u00e9m utilizar medidas de limita\u00e7\u00e3o de taxas, verifica\u00e7\u00e3o do agente do utilizador (para identificar potenciais bots), rastrear sess\u00f5es, utilizar autentica\u00e7\u00e3o baseada em tokens, utilizar CDN (Content Delivery Networks) ou mesmo utilizar sistemas de dete\u00e7\u00e3o baseados no comportamento.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>c. Web Scraping vs. Web Crawling?<\/strong><\/h4>\n\n\n\n<p>Although web scraping and web crawling are both web data extraction techniques, they have different purposes, scopes, automation, and legal aspects. On the one hand, web scraping techniques aim to extract specific data from particular sites. They are targeted and have a specific, limited scope. Web scraping uses automated scripts or third-party tools to request, receive, parse, extract, and structure data. Web crawling techniques (like <a href=\"https:\/\/www.rapidseedbox.com\/blog\/list-crawling\" target=\"_blank\" rel=\"noreferrer noopener\">list crawling<\/a>), on the other hand, are used to systematically search the web. They are popular among search engines (broader scope), social media platforms, researchers, content aggregators, etc. Web crawlers can visit many sites automatically (via bots, crawlers, or spiders), build a list, index data (create a copy), and store it in a database. Web crawlers usually check the ROBOTS.txt files.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>d. Extra\u00e7\u00e3o de dados vs raspagem de dados: Quais s\u00e3o as suas diferen\u00e7as e semelhan\u00e7as?<\/strong><\/h4>\n\n\n\n<p>Tanto a extra\u00e7\u00e3o de dados como a raspagem de dados envolvem a extra\u00e7\u00e3o de dados. No entanto, a extra\u00e7\u00e3o de dados centra-se na utiliza\u00e7\u00e3o de t\u00e9cnicas estat\u00edsticas e de aprendizagem autom\u00e1tica para analisar conjuntos de dados estruturados. O seu objetivo \u00e9 identificar padr\u00f5es, rela\u00e7\u00f5es e conhecimentos em conjuntos de dados estruturados grandes e complexos. A extra\u00e7\u00e3o de dados, por outro lado, centra-se na \"parte de recolha\" de informa\u00e7\u00f5es espec\u00edficas de p\u00e1ginas e s\u00edtios Web. Ambas as t\u00e9cnicas e ferramentas podem ser utilizadas em conjunto. A raspagem da Web pode ser um passo preliminar para recolher dados da Web, que s\u00e3o depois introduzidos em algoritmos de extra\u00e7\u00e3o de dados para uma an\u00e1lise aprofundada e descoberta de conhecimentos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>e. O que \u00e9 o Screen Scraping?  E qual a sua rela\u00e7\u00e3o com o Data Scraping?<\/strong><\/h4>\n\n\n\n<p>Ambas as t\u00e9cnicas se centram na extra\u00e7\u00e3o de dados, mas diferem no tipo de dados que extraem. <a href=\"https:\/\/www.rapidseedbox.com\/blog\/screen-scraping\" target=\"_blank\" rel=\"noreferrer noopener\">Raspagem do ecr\u00e3<\/a> visam capturar e extrair \"automaticamente\" dados visuais apresentados em s\u00edtios Web e documentos, incluindo texto no ecr\u00e3. Ao contr\u00e1rio da raspagem da Web, que analisa dados do HTML (extraindo assim uma vasta gama de dados da Web), a raspagem do ecr\u00e3 l\u00ea dados de texto diretamente do ecr\u00e3.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>f. Web Harvesting \u00e9 o mesmo que Web Scraping?<\/strong><\/h4>\n\n\n\n<p>A recolha de dados e a recolha na Web est\u00e3o fortemente relacionadas e s\u00e3o frequentemente utilizadas como sin\u00f3nimos, mas n\u00e3o s\u00e3o o mesmo conceito. A recolha na Web tem uma conota\u00e7\u00e3o mais ampla. Engloba diferentes m\u00e9todos de extra\u00e7\u00e3o de dados da Web, incluindo v\u00e1rios mecanismos autom\u00e1ticos de extra\u00e7\u00e3o da Web, como o web scraping. Uma distin\u00e7\u00e3o clara \u00e9 que a colheita na Web \u00e9 frequentemente utilizada quando est\u00e1 envolvida uma API, em vez de analisar diretamente o c\u00f3digo HTML das p\u00e1ginas Web (como faz a raspagem da Web).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>g. Seletor CSS vs Seletor XPath:  Quais s\u00e3o as diferen\u00e7as quando se faz scraping?&nbsp;<\/strong><\/h4>\n\n\n\n<p>Os selectores CSS s\u00e3o uma forma eficiente de extrair dados durante a recolha de dados da Web. Oferecem uma sintaxe simples e funcionam bem na maioria dos cen\u00e1rios de recolha de dados. No entanto, em casos mais complexos ou quando se lida com estruturas aninhadas, os selectores XPath podem fornecer flexibilidade e funcionalidade adicionais. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>h. Como lidar com s\u00edtios Web din\u00e2micos com o Selenium?<\/strong><\/h4>\n\n\n\n<p>O Selenium \u00e9 uma ferramenta poderosa para a recolha de dados de s\u00edtios Web din\u00e2micos. Permite-lhe interagir com elementos na p\u00e1gina Web como um utilizador humano o faria. Esta capacidade permite ao seu \"script\" navegar atrav\u00e9s de conte\u00fados gerados dinamicamente. Ao utilizar o <a href=\"https:\/\/www.selenium.dev\/documentation\/webdriver\/\" target=\"_blank\" rel=\"noreferrer noopener\">WebDriver do Selenium<\/a>Se o JavaScript for utilizado, pode esperar que os elementos da p\u00e1gina sejam carregados, interagir com elementos AJAX e extrair dados de s\u00edtios Web que dependem fortemente do JavaScript.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>i<\/strong>.<strong> Como lidar com AJAX e JavaScript durante o Web Scraping?<\/strong><\/h4>\n\n\n\n<p>Ao lidar com AJAX e JavaScript durante a raspagem da Web, as bibliotecas tradicionais, como Requests e Beautiful Soup, podem n\u00e3o ser suficientes. Para lidar com solicita\u00e7\u00f5es AJAX e conte\u00fado renderizado em JavaScript, \u00e9 poss\u00edvel usar ferramentas como Selenium ou navegadores sem cabe\u00e7a, como <a href=\"https:\/\/pptr.dev\/\" target=\"_blank\" rel=\"noreferrer noopener\">Marionetista<\/a>. <\/p>\n\n\n\n<div style=\"height:18px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"012\">8. Considera\u00e7\u00f5es Finais&nbsp;<\/h2>\n\n\n\n<p>Parab\u00e9ns! Est\u00e1 a completar o guia definitivo para a recolha de dados da Web! <\/p>\n\n\n\n<p>Esperamos que este guia o tenha dotado dos conhecimentos e ferramentas necess\u00e1rios para aproveitar o potencial da recolha de dados da Web para os seus projectos. <\/p>\n\n\n\n<p><strong>Lembrem-se, com grande poder vem grande responsabilidade.<\/strong> Ao iniciar a sua jornada na recolha de dados da Web, d\u00ea sempre prioridade \u00e0s pr\u00e1ticas \u00e9ticas, respeite os termos de servi\u00e7o dos s\u00edtios Web e tenha em aten\u00e7\u00e3o a privacidade dos dados. <\/p>\n\n\n\n<p>Toc\u00e1mos na ponta do icebergue. O Web Scraping pode ser um t\u00f3pico bastante abrangente. Mas, ei, j\u00e1 fizeste scraping de um site! <\/p>\n\n\n\n<p>A aprendizagem cont\u00ednua e a atualiza\u00e7\u00e3o das \u00faltimas tecnologias e desenvolvimentos jur\u00eddicos permitir-lhe-\u00e3o navegar neste mundo complexo. <\/p>\n\n\n\n<p>A inspe\u00e7\u00e3o visual e a extra\u00e7\u00e3o manual de dados de uma p\u00e1gina HTML utilizando estes selectores CSS e XPath pode n\u00e3o s\u00f3 ser morosa como tamb\u00e9m propensa a erros. Al\u00e9m disso, a extra\u00e7\u00e3o manual ou visual de dados \u00e9 completamente inadequada para a recolha de dados em grande escala ou para tarefas de raspagem repetitivas. \u00c9 aqui que o scripting e a programa\u00e7\u00e3o s\u00e3o altamente ben\u00e9ficos.<\/p>","protected":false},"excerpt":{"rendered":"<p>Quer seja um principiante curioso sobre o conceito ou um programador experiente que procura melhorar as suas compet\u00eancias, este guia tem algo valioso para todos. Desde a compreens\u00e3o das no\u00e7\u00f5es b\u00e1sicas de extra\u00e7\u00e3o de dados HTML utilizando selectores CSS e XPath at\u00e9 \u00e0 pr\u00e1tica de web scraping com Python, temos tudo o que precisa. Al\u00e9m disso, abordaremos os aspectos legais, considera\u00e7\u00f5es \u00e9ticas e pr\u00e1ticas recomendadas para garantir uma raspagem respons\u00e1vel da Web. <\/p>","protected":false},"author":145,"featured_media":25091,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[39],"tags":[410,735,319,320],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Ultimate Guide to Web Scraping [Updated]<\/title>\n<meta name=\"description\" content=\"In this post, you&#039;ll learn about web scraping. What is its legal context? what are the techniques used to stop it, and how to bypass them?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rapidseedbox.com\/pt\/blog\/web-scraping\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Ultimate Guide to Web Scraping [Updated]\" \/>\n<meta property=\"og:description\" content=\"In this post, you&#039;ll learn about web scraping. What is its legal context? what are the techniques used to stop it, and how to bypass them?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rapidseedbox.com\/pt\/blog\/web-scraping\" \/>\n<meta property=\"og:site_name\" content=\"RapidSeedbox\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RapidSeedbox\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-18T13:15:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-28T18:31:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"623\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Diego Asturias\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rapidseedbox\" \/>\n<meta name=\"twitter:site\" content=\"@rapidseedbox\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diego Asturias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Ultimate Guide to Web Scraping [Updated]","description":"In this post, you'll learn about web scraping. What is its legal context? what are the techniques used to stop it, and how to bypass them?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rapidseedbox.com\/pt\/blog\/web-scraping","og_locale":"pt_PT","og_type":"article","og_title":"The Ultimate Guide to Web Scraping [Updated]","og_description":"In this post, you'll learn about web scraping. What is its legal context? what are the techniques used to stop it, and how to bypass them?","og_url":"https:\/\/www.rapidseedbox.com\/pt\/blog\/web-scraping","og_site_name":"RapidSeedbox","article_publisher":"https:\/\/www.facebook.com\/RapidSeedbox\/","article_published_time":"2020-12-18T13:15:21+00:00","article_modified_time":"2025-10-28T18:31:07+00:00","og_image":[{"width":1200,"height":623,"url":"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/web-scraping.png","type":"image\/png"}],"author":"Diego Asturias","twitter_card":"summary_large_image","twitter_creator":"@rapidseedbox","twitter_site":"@rapidseedbox","twitter_misc":{"Escrito por":"Diego Asturias","Tempo estimado de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping#article","isPartOf":{"@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping"},"author":{"name":"Diego Asturias","@id":"https:\/\/www.rapidseedbox.com\/#\/schema\/person\/a942bef3ef57b90e360766fc06a4fc7f"},"headline":"The Ultimate Guide to Web Scraping [Updated]","datePublished":"2020-12-18T13:15:21+00:00","dateModified":"2025-10-28T18:31:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping"},"wordCount":4613,"commentCount":0,"publisher":{"@id":"https:\/\/www.rapidseedbox.com\/#organization"},"keywords":["francais","indonesian","proxy","web scraping"],"articleSection":["blog"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rapidseedbox.com\/blog\/web-scraping#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping","url":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping","name":"The Ultimate Guide to Web Scraping [Updated]","isPartOf":{"@id":"https:\/\/www.rapidseedbox.com\/#website"},"datePublished":"2020-12-18T13:15:21+00:00","dateModified":"2025-10-28T18:31:07+00:00","description":"In this post, you'll learn about web scraping. What is its legal context? what are the techniques used to stop it, and how to bypass them?","breadcrumb":{"@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rapidseedbox.com\/blog\/web-scraping"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.rapidseedbox.com\/blog\/web-scraping#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rapidseedbox.com\/"},{"@type":"ListItem","position":2,"name":"blog","item":"https:\/\/www.rapidseedbox.com\/category\/blog"},{"@type":"ListItem","position":3,"name":"The Ultimate Guide to Web Scraping [Updated]"}]},{"@type":"WebSite","@id":"https:\/\/www.rapidseedbox.com\/#website","url":"https:\/\/www.rapidseedbox.com\/","name":"RapidSeedbox","description":"Seedbox &amp; Dedicated Server provider focused on delivering fast peer-to-peer BitTorrent protocol-based file transfer on remote high-end servers.","publisher":{"@id":"https:\/\/www.rapidseedbox.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rapidseedbox.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/www.rapidseedbox.com\/#organization","name":"RapidSeedbox","url":"https:\/\/www.rapidseedbox.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.rapidseedbox.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/logoonly.png","contentUrl":"https:\/\/www.rapidseedbox.com\/wp-content\/uploads\/logoonly.png","width":259,"height":261,"caption":"RapidSeedbox"},"image":{"@id":"https:\/\/www.rapidseedbox.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RapidSeedbox\/","https:\/\/twitter.com\/rapidseedbox","https:\/\/www.linkedin.com\/company\/rapidseedbox","https:\/\/www.youtube.com\/@rapidseedbox"]},{"@type":"Person","@id":"https:\/\/www.rapidseedbox.com\/#\/schema\/person\/a942bef3ef57b90e360766fc06a4fc7f","name":"Diego Asturias","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.rapidseedbox.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5473e3ab660a5d167e3a25350e963690?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5473e3ab660a5d167e3a25350e963690?s=96&d=mm&r=g","caption":"Diego Asturias"},"description":"Diego Asturias is a tech journalist who translates complex tech jargon into engaging content. He has a degree in Internetworking Tech from Washington DC, US, and tech certifications from Cisco, McAfee, and Wireshark. He has hands-on experience working in Latin America, South Korea, and West Africa. He has been featured in SiliconANGLE Media, Cloudbric, Pcwdld, Hackernoon, ITT Systems, SecurityGladiators, Rapidseedbox, and more.","sameAs":["https:\/\/www.linkedin.com\/in\/diego-asturias-035a539\/"],"url":"https:\/\/www.rapidseedbox.com\/author\/diego"}]}},"_links":{"self":[{"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/posts\/11399"}],"collection":[{"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/users\/145"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/comments?post=11399"}],"version-history":[{"count":10,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/posts\/11399\/revisions"}],"predecessor-version":[{"id":41715,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/posts\/11399\/revisions\/41715"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/media\/25091"}],"wp:attachment":[{"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/media?parent=11399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/categories?post=11399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rapidseedbox.com\/pt\/wp-json\/wp\/v2\/tags?post=11399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}