[英]Python and BeautifulSoup : why doen't my if condition work
我正在嘗試使用beautifulSoup抓取網頁,並且構建了從表中獲取一些信息的代碼。 這是我正在處理的代碼,但我對if條件有疑問:
p=soup_tab.find_all('tr')
j=0
for i in p:
soup_tr = BeautifulSoup(str(i) ,'html.parser')
if(soup_tr.find('span',
{"id":"ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl"+str(j)+
"_reference"})):
print("enter if 1 =======================")
cons_intitule_ref= (soup_tr.find('span',
{"id":"ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl"+str(j)+
"_reference"})).get_text()
resultat.append(cons_intitule_ref)
我的代碼中的問題是在if條件下,在執行程序時沒有打印(“如果1 ========,請輸入)。 並且我確定我要搜索的標簽是正確的,我認為確切的問題是在條件上(如果);
請提供任何幫助,我在這個問題上停留了幾個小時,仍然感謝您
主要問題,我看到:你開始你的循環j=0
時0
時,它應在開始1
按順序打印您所需的結果。
如果這是您的html(實際頁面的精簡版本),並且您正在嘗試獲取與此標記關聯的文本:
html = '''<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl1_reference">01/AMI/RDOE/2017</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl2_reference">01/ct/2017</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl3_reference">108/2017/CNSS</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl4_reference">1/2017</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl5_reference">09/2017/CZC</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl6_reference">65/2017/TGR</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl7_reference">20/2017/DMSPK</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl8_reference">05/INDH/2017</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl9_reference">13/CS/2017</span>
<span class="ref" id="ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl10_reference">158/2017/RRA</span>'''
您應該像這樣使用正則表達式:
import re
soup = BeautifulSoup(html, 'lxml')
for item in soup.findAll('span', {"id": re.compile(
"ctl0_CONTENU_PAGE_resultSearch_tableauResultSearch_ctl\d+_reference")}):
item.get_text()
返回值:
'01/AMI/RDOE/2017'
'01/ct/2017'
'108/2017/CNSS'
'1/2017'
'09/2017/CZC'
'65/2017/TGR'
'20/2017/DMSPK'
'05/INDH/2017'
'13/CS/2017'
'158/2017/RRA'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.