Questão recuperar e extrair links (Linux / Windows)


Eu tenho um arquivo "source.txt" que contém uma lista de alguns URLs. Por exemplo:

source.txt:    
http://www.amazon.com/gp/product/B007OZNZG0/ref=s9_pop_gw_g349_ir05/176-5131847-6150405?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=02R1PYSDAPM8P0XF7HXW&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846
http://www.amazon.com/gp/product/B0083PWAPW/ref=s9_pop_gw_g424_ir04/176-5131847-6150405?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-2&pf_rd_r=02R1PYSDAPM8P0XF7HXW&pf_rd_t=101&pf_rd_p=1263340922&pf_rd_i=507846

eu quero recuperar cada link dentro de "source.txt" e pesquisar através do html de cada e extrair todos os links deles que contenham "/ gp / product" e depois armazená-los no arquivo "extracted.txt", que seria semelhante a:

extracted.txt:
http://www.amazon.com/gp/product/B008GFRB9E/ref=fs_j
http://www.amazon.com/gp/product/B008GFUA4C/ref=fs_2
...

Estou usando o Windows 7 (64 bits) e o Cygwin, para poder executar comandos do Linux também.


2


origem


Você pode querer reformular sua pergunta. A primeira vez que li, achei um simples grep (como na resposta do ssmy) era o que você queria. Agora eu li sua pergunta duas vezes e meia, e eu acho que você quer dizer que você quer recuperar cada uma das páginas da Web cujos URLs você tem e, em seguida, pesquisar através do HTML para "/gp/product" É isso que você quer dizer? Se assim for, eu acredito que você deve olhar para wget. - Scott
Eu modifiquei a questão. Sim, quero dizer recuperar e pesquisar através das URLs em "source.txt". - Si14
Você pode usar "wget ​​-qO- -i source.txt | grep / gp / product", mas isso mostrará as linhas contendo "/ gp / product" com todas as tags html etc. - FSMaxB
@FSMaxB Obrigado. Eu tentei e você está certo. A saída é as linhas com "href =" / gp / product / ", enquanto deveria ser"amazon.com/gp/product ". Alguma sugestão como modificar isso? - Si14
@ Si14 Talvez você possa usar o awk ou o sed para extrair os links reais dessa lista, mas não sei como fazê-lo. Pelo menos é o primeiro passo. - FSMaxB


Respostas:


Em um bash shell você pode usar o grep. grep "/gp/product/" source.txt >extracted.txt


-1



O comando acima procura essa palavra-chave apenas no source.txt e não abre e pesquisa os URLs nela. Eu tentei no Cygwin. Eu não tenho certeza como testá-lo no bash shell? Você tem sugestões? - Si14