2011-05-25 39 views
6

Web sayfasını okumak için bir komut dosyası yazıyorum ve belirli bir ölçütle eşleşen bağlantılar veritabanı oluşturuyorum. Şu andaWeb sayfasındaki tüm bağlantıları bulabilmek için Python lxml/beautiful soup

result = self._openurl(self.mainurl) 
content = result.read() 
html = lxml.html.fromstring(content) 
print lxml.html.find_rel_links(html,'href') 
+1

bu kez onlarca istendi lxml.cssselect sağlanan fonksiyonunu kullanır ve iyi cevaplar, ör: http://stackoverflow.com/questions/1080411/retrieve-links- -Pet-page-using-python-ve-güzel-çorba –

cevap

7

Kullanım XPath ... LXML ve html tüm <a href> 's kapmak için nasıl anlamak ile şaşırıp. Böyle bir şey (buradan test edemez): iterlinks ile

urls = html.xpath('//a/@href') 
+0

teşekkür ederim çok! Ben URL ve açıklama – Cmag

+0

OK test edeceğimiz, o zaman nasıl geri 2 değişkenler bir dizeden gibi alabilirsiniz) '' yerine ve sonra (başımın üstünden) '.attr ['href']' için url ve '.text' içindekiler. – Cmag

+0

Kullan ihtiyaç

  • Economic & Name
  • 'html.xpath ('// a' i –

    3

    , Lxml bu görev için mükemmel bir işlev sağlar.

    bir eylem, arşiv, arka plan, alıntı classid kod temeli, veri, href, longdesc, profil, src, USEMAP her bağlantıyı [...] Bu verim (öğe, öznitelik, bağlantı, pos)

    , dynsrc veya lowsrc özniteliği.

    0

    Alternatif bir lxml tabanlı çözüm sağlamak istiyorum.

    çözüm

    import urllib 
        import lxml.html 
        from lxml.cssselect import CSSSelector 
        connection = urllib.urlopen('http://www.yourTargetURL/') 
        dom = lxml.html.fromstring(connection.read()) 
        selAnchor = CSSSelector('a') 
        foundElements = selAnchor(dom) 
        print [e.get('href') for e in foundElements] 
    
    İlgili konular