2017-02-14 82 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

相关问题