Bir sayfada url arama nasıl

3 Cevap php

Ben böyle Düzenli ifadeler ve şeyler yeniyim. Ben sadece birkaç bilgiye sahip ve benim şimdiki sorun onlar hakkında olduğunu düşünüyorum.

Ben metin içeren bir web sayfası var. Ben var class="img" SPAN s sadece web sayfasından link almak istiyorum.

O adımlar geçmesi.

  1. kapmak tüm SPAN (bu ben arıyorum zor adımdır): "img" sınıfı ile etiketlendi s
  2. yeni bir değişken için bu SPAN s hareket
  3. Bağlantıları olan bir dizisini almak için değişken ayrıştırmak (Her SPAN sadece 1 bağlantı vardır, bu nedenle bu kolay olacak)

I'm using PHP, but any other language doesn't matter, I'm looking how to deal with the first step. Any one have a suggestion? Thanks :D

3 Cevap

: Phps Bu gibi ihtiyacınız elemanları gitmek için DOMXPath-sınıfı ile birlikte DOMDocument sınıfı kullanın

<?php
$dom = new DOMDocument();
$dom->loadHTML(file_get_contents('http://foo.bar'));
$xpath = new DOMXPath($dom);

$elements = $xpath->query("/html/body//span[@class='img']//a"); foreach ($elements as $a) { echo $a->getAttribute('href'), "\n"; }

You can learn more about the XPath Language on the W3C page.

<span.* class="img".*>([^<]*)</span> cezası çalışması gerekir gibi. Bir desen, kodunuzu varsayarak şey gibi görünüyor

<span class="img">http://www.img.com/img.jpg</span>
<span alt="yada" class="img">animage.png</span>
<span alt="yada" class="img" title="still works">link.txt</span>
<span>not an img class</span>


<?php

$pattern = '@<span.* class="img".*>([^<]*)</span>@i';

//$subject = html code above

preg_match_all($pattern, $subject, $matches);

print_r($matches);

?>

I'm using PHP, but any other language doesn't matter, I'm looking how to deal with the first step. Any one have a suggestion?

Biz-e-ell ...

import urllib
from BeautifulSoup import BeautifulSoup, SoupStrainer

html = urllib.urlopen(url).read()
sieve = SoupStrainer(name='span', attrs={'class': 'img'})
tag_soup = BeautifulSoup(html, parseOnlyThese=sieve)
for link in tag_soup('a'):
    print link['href']

(- Iyi biçimli ya da hayır, en douments çalışması gerektiğini BeautifulSoup kullanarak, piton var).