Eu sempre usei LWP (libwww-perl) ou WWW: Mechanize para trabalhos como este - existem vários tipos de Eu usaria python para, mas eu prefiro perl para qualquer coisa envolvendo envolvendo processamento de texto.
Provavelmente a mais complicada que eu escrevi foi há vários anos, quando eu e minha parceira possuímos uma pequena livraria - ela precisava de um programa para extrair informações sobre livros no site de um distribuidor de livros (digitado em ISBN ou código de barras) e inserir detalhes relevantes. em seu banco de dados de estoque (postgresql).Observe que a criação de web-scrapers pode ser tediosa e demorada - você gasta muito tempo lendo o código-fonte HTML de várias páginas da Web e descobrindo como identificar e extrair apenas as informações que está procurando.
Não é particularmente difícil, mas requer um bom conhecimento de HTML e, pelo menos, habilidades de programação de nível médio.
É provável que você tenha que escrever um scraper diferente para cada site de banco de dados, em vez de um que faça todos eles - embora você possa escrever um script de wrapper que os inclua como funções ou chame scripts separados dependendo do site.
Os sites também tendem a mudar. Um raspador que está funcionando perfeitamente por seis ou doze meses pode de repente parar de funcionar porque o site foi redesenhado e não funciona mais do jeito que seu script espera.
Portanto, se algum dos bancos de dados tiver algum tipo de API para acesso programático (por exemplo, usando REST ou SOAP ou mesmo RSS então use isso em vez de copiar HTML. Infelizmente, isso é bastante improvável para o tipo de banco de dados disponível nas bibliotecas (os proprietários de banco de dados tendem a ter atitudes pré-web quanto aos dados e estão mais interessados em controlar e restringir o acesso do que qualquer outra coisa). Eles não querem facilitar o acesso de qualquer pessoa a seus dados por meio de um programa em vez de um navegador, e alguns envidam esforços significativos para ofuscar seus sites para tornar o código HTML difícil de entender ou exigir um intérprete de javascript para extrair links e outros dados.
Para um bom exemplo disso, não procure mais sites de TV - alguns deles realmente não querem que as pessoas usem seus dados para automatizar cronogramas de gravação de programas como MythTV, então há uma guerra tecnológica entre os desenvolvedores do site e autores de site-scraper.
Existem interpretadores de javascript para perl (incluindo um para uso com WWW :: Mechanize chamado WWW :: Scripter , mas às vezes é mais fácil examinar o código JavaScript do site, descobrir o que ele está fazendo para ofuscar o HTML e escrever código perl para desanexar os dados sem um interpretador js. / p>