BS4 按 class 查找项目
BS4 find item by class
我正在尝试制作一个简单的网络抓取工具
我有一个类似这样的 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?
有人可以帮我吗?
出乎意料的简单。
我设法提取了中间部分:
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
我不确定这是否是最优雅或最有效的解决方案,但它确实有效。
第二个错误是使用 class 查找全部。由于某种我不明白的原因,这在速卖通中根本不起作用。解决方案是搜索文本。
ntdesc=soup.find("span",text="Unlock Phones:").find_all_next()
我正在尝试制作一个简单的网络抓取工具 我有一个类似这样的 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? 有人可以帮我吗?
出乎意料的简单。 我设法提取了中间部分:
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
我不确定这是否是最优雅或最有效的解决方案,但它确实有效。 第二个错误是使用 class 查找全部。由于某种我不明白的原因,这在速卖通中根本不起作用。解决方案是搜索文本。
ntdesc=soup.find("span",text="Unlock Phones:").find_all_next()