2017-03-11 4 views
0

Ich versuche, einen bestimmten Link für Bilder von einer Webseite zu isolieren, kann aber nicht ganz dorthin gelangen. Der HTML-Code sieht ungefähr so ​​aus:Python Web Scraping: Suche nach bestimmten Link

<head> 
    <img alt="Generic title" src="https://genericURL/photo/picture.jpg/"> 
    <img src="https://genericurl/.../"> 
    <img src="https://genericurl/.../"> 
    .... 

Ich bin in der Lage viele Links zurückzukehren, aber die Verbindung I ist speziell die oberste wollen gezeigt, es ist die einzige Verbindung ist /photo/picture.jpg enthält. Ich habe versucht, die Antwort von Find specific link text with bs4 und andere Variationen, aber habe es noch nicht herausgefunden. Kann jemand bitte einen Blick darauf werfen?

Mein Code:

links = soup.findAll('img', {'src': re.compile('^http://image\d+')}) 
for link in links: 
    print(link.text) 

EDIT: die Vorschläge verwenden ich, dass der Link-Format realisiert wurde auf dem Filter basiert Ändern I wurde unter Verwendung von, zum Beispiel: wenn ich die Seite gesamte Web-Druck wurde sah ich den Link als http://image.... Jedoch, als ich findAll('img', {'src' ... benutzte, gab der Link als https://img aus, also versuchte ich, die falschen Sachen zu re.compile.

+0

Warum nicht 're.compile (" photo/picture.jpg ")'? – Psidom

Antwort

0
import re 
links = soup.findAll('img', {'src': re.compile('^http://image\d+')}) 
for link in links: 
    if re.search('photo\/pictures\.jpg', link.get('href', ''), re.IGNORECASE): 
     link_i_want = link.get('href') 
     break 
3
soup.find_all("img", alt="Generic title") 

sollten Sie alt als Filter verwenden.