Python爬行兄弟姐妹

时间:2015-01-08 15:22:45

标签: python web-scraping beautifulsoup html-parsing web-crawler

我正在抓取一些网站,现在我需要找到一些值。虽然看起来很简单。出于某种原因,我无法完成它。

这是我可以找到值的代码段:

<dl class="product-specs--list">
    <dt class="product-specs--item-title">
        Fabrikantcode               </dt>
    <dd class="product-specs--item-spec">
        BX80646I74790K              </dd>
    <dt class="product-specs--item-title">
        Artikelnummer               </dt>
    <dd class="product-specs--item-spec product-specs--item-spec-even">
        476816              </dd>
    <dt class="product-specs--item-title">
        Merk                </dt>
    <dd class="product-specs--item-spec">
        Intel               </dd>
    <dt class="product-specs--item-title">
        Garantie                </dt>
    <dd class="product-specs--item-spec product-specs--item-spec-even">
        3 jaar              </dd>
    <dt class="product-specs--item-title">
        Garantietype                </dt>
    <dd class="product-specs--item-spec">
        Carry-in-garantie               </dd>
</dl>

这是我的代码和平:

link = 'http://www.processorstore.nl/product/476816/category-212276/intel-core-i7-4790k.html'
source = requests.get(link)
plain = source.text
soup = BeautifulSoup(plain)

for dt in soup.findAll('dt', {'class': 'product-specs--item-title'}):

    spec = dt.text.strip()

    if spec == 'Serie':

        print(spec) # It does print Serie

        # Now i need to find the Next_sibling: Core i7
        # This is NOT working :(
        dd = spec.find_next_sibling("dd", {'class': 'product-specs--item-spec'})
        print(dd)


    elif spec == 'Threads':
        print(spec)
    else:
        print("######### something else")

我确实尝试了几件事,但没有成功。

1 个答案:

答案 0 :(得分:3)

你应该找到dt的下一个兄弟而不是spec(这是一个unicode字符串):

dd = dt.find_next_sibling("dd", {'class': 'product-specs--item-spec'})