2017-02-14 84 views
0

我正在學習使用Python3進行爬網。對於相同的標籤,我只想提取我想要的標籤

enter image description here

<ul class='report_thum_list img'> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 
    <li>...</li> 

在此,我只想拉出L1標籤。

所以,我寫了

ulTag = soup.findAll('ul', class_='report_thum_list img') 
liTag = ulTag[0].findAll('li') 
# print(len(liTag)) 

我預計二十(有每頁20帖)

但在100就出來了。

因爲li標籤中有另一個li標籤。

enter image description here

我不想提取div標籤內的L1標籤。

我該如何取出20個鋰標籤?

這是我的代碼。

url = 'https://www.posri.re.kr/ko/board/thumbnail/list/63?page='+ str(page) 
source_code = requests.get(url) 
plain_text = source_code.text 
soup = BeautifulSoup(plain_text, 'lxml') 

ulTag = soup.find('ul', class_='report_thum_list img') 
# liTag = ulTag.findAll('li') 
liTag = ulTag.findChildren('li') 
print(len(liTag)) 

回答

1
liTag = soup.select('ul.report_thum_list > li') 

使用CSS選擇器,它是非常容易使用

+0

@對不起。我寫了findChildren('li'),但它不起作用。 結果是160.另外,liTag = ulTag.findAll('li')的結果也是160,也是 – StackQ

+0

@StackQ在html代碼 –

+0

後面@ OK。我做到了...... – StackQ

相關問題