BS4按班级

时间:2016-09-04 20:52:12

标签: python-2.7 web-crawler bs4

我试图制作一个简单的网络刮刀 我有一个类似于此的htm文件:

    <!DOCTYPE html>
    <title>some text</title>
    <div class="ui-box-title">Item specifics</div>
     <ul>
      <li>Coffee</li>
      <li>Tea</li>
      <li>Milk</li>
    </ul> 
    <div class="description">Item specifics</div>
      <li>not interesting</li>
      <li>not interesting</li>
      <li>not interesting</li>
    ...

如何提取咖啡茶和牛奶?我试过这个

    allaftuibox=soup.find_all_next("div", { "class" : "ui-box-title" }):
    allaftuibox.find_all("ul")

但allaftuibox是空的。我在哪里犯这个错误?我该如何提取ul? 有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

这简直太简单了。 我设法提取中间部分:

for every in soup.findAll("div"):
            if "Product Description" in every:
                itsp=True
            if itsp:
                #print every
                #print every.find('img', {'class': 'sizedProdImage'})
                #desc.append(every)
                acv=0
            if "Packaging Details" in every:
                itsp=False

我不确定这是否是最合适或最有效的解决方案,但它有效。 而第二个错误是找到所有类。由于某些我不理解的原因,这在aliexpress中根本不起作用。解决方案是搜索文本。

ntdesc=soup.find("span",text="Unlock Phones:").find_all_next()