【发布时间】:2013-11-01 01:54:15
【问题描述】:
我正在寻求一些帮助,使我的 if 语句在这篇文章的底部“更严格”,这样它就不会意外返回错误的数据。
打印 details
<li class="">
<span class="prefix">Student Discount</span>
£2922.70 </li>
<li class="">
<span class="prefix">Student DiscountX</span>
5499.99 </li>
打印细节
<li class="">
<span class="prefix">Student Discount</span>
£2922.70 </li>
打印 unicode(详细)
<li class="">
<span class="prefix">Student Discount</span>
£2922.70 </li>
BeautifulSoup 代码片段
details = details_section.findAll('li', {"class":"full"})
for detail in details:
if detail.find(text=re.compile("Student Discount")):
SD = detail.get_text().replace("Student Discount", "").strip().replace(u"£", "POUNDSIGNHERE")
SD = "Student Discount {}".format(detail.get_text().replace("Student Discount", "").strip().replace(u"£", "POUNDSIGNHERE"))
if not "Student Discount POUNDSIGNHERE" in result_SF:
SD = "Student Discount POUNDSIGNHERE{}".format(detail.get_text().replace("Student Discount", "").strip().replace(u"£", "POUNDSIGNHERE"))
print SD
输出
SF POUNDSIGNHERE2922.70
SF POUNDSIGNHERE5499.99
如您所见,我已经解决了每个细节中空格/制表符过多的问题,并且我已将磅符号替换为 POUNDSIGNHERE,以便稍后当我需要它时,我所要做的就是将其替换为井号。
我正在发帖寻求帮助:if detail.find(text=re.compile("Student Discount")):
类似于:if detail.find(text=re.compile('<span class="prefix">Student Discount</span>')):
甚至:if detail.find(text=re.compile('>Student Discount<')):
我想让 if 语句更严格,这样它就不会潜在地拾取如下行:
<li class="">
<span class="prefix">Student Discount Old</span>
£2922.70 </li>
任何想法、建议或想法将不胜感激。
【问题讨论】:
-
您的示例代码似乎不完整,result_SF 没有定义?
标签: python regex python-2.7 if-statement beautifulsoup