# 1、获取所有tr标签
1 from bs4 import BeautifulSoup 2 text = """ 3 <table class="tablelist" cellpadding="0" cellspacing="0"> 4 <tbody> 5 <tr class="h"> 6 <td class="l" width="374">职位名称</td> 7 <td>职位类别</td> 8 <td>人数</td> 9 <td>地点</td> 10 <td>发布时间</td> 11 </tr> 12 <tr class="even"> 13 <td class="l square"><a target="blank" 14 href="https://www.baidu.com/">研发工程师(上海1)</a></td> 15 <td>技术类</td> 16 <td>1</td> 17 <td>上海</td> 18 <td>2020-1-1</td> 19 </tr> 20 <tr class="odd"> 21 <td class="l square"><a target="blank" 22 href="https://www.baidu.com/">工程师(北京2)</a></td> 23 <td>技术类</td> 24 <td>2</td> 25 <td>北京</td> 26 <td>2020-2-2</td> 27 </tr> 28 <tr class="even"> 29 <td class="l square"><a target="blank" 30 href="https://www.baidu.com/">工程师(上饶3)</a></td> 31 <td>管理类</td> 32 <td>3</td> 33 <td>上饶</td> 34 <td>2020-3-3</td> 35 </tr> 36 <tr class="odd"> 37 <td class="l square"><a id="test" class="test" target="blank" 38 href="https://www.baidu.com/">工程师(上饶3)</a></td> 39 <td>管理类</td> 40 <td>3</td> 41 <td>上饶</td> 42 <td>2020-3-3</td> 43 </tr> 44 </tbody> 45 </table> 46 """ 47 48 soup = BeautifulSoup(text, ‘lxml‘) 49 # 1、获取所有tr标签 50 trs = soup.select(‘tr‘) 51 for tr in trs: 52 print(tr)
# 2、获取第2个tr标签
1 # 2、获取第2个tr标签 2 tr = soup.select(‘tr‘)[1] 3 print(tr)
# 3、获取所有class等于even的tr标签
1 # 3、获取所有class等于even的tr标签 2 # 方法一: 3 trs1 = soup.select(‘tr.even‘) 4 for tr1 in tr1: 5 print(tr1) 6 # 方法二: 7 trs2 = soup.select(‘tr[class="even"]‘) 8 for tr1 in trs2: 9 print(tr1)
# 4_1、将所有id等于test,class也等于test的所有a标签提取出
selcet&CSS无法实现
# 4_2、获取所有a标签下href属性的值 bs4中的select()功能与CSS无关
1 # 4_2、获取所有a标签下href属性的值 2 ahs = soup.select(‘a‘) 3 for ah in ahs: 4 # 方法一:通过下标操作 5 href1 = ah[‘href‘] 6 print(‘href1={}‘.format(href1)) 7 # 方法二:通过属性操作 8 href2 = ah.attrs[‘href‘] 9 print(‘href2={}‘.format(href2))
# 5、获取所有的职位信息(纯文本) bs4中的select()功能与CSS无关
1 # 5、获取所有的职位信息(纯文本) 2 trs = soup.select(‘tr‘)[1:] # 从第二个tr开始获取 3 movies = [] 4 for tr in trs: 5 movie = {} 6 # 获取tr下所有非标签字符 7 # infos= list(tr.strings) 8 # 获取tr下所有非标签&非空白字符 9 infos = list(tr.stripped_strings) 10 #print(infos) 11 movie[‘title‘] = infos[0] 12 movie[‘category‘] = infos[1] 13 movie[‘num‘] = infos[2] 14 movie[‘city‘] = infos[3] 15 movie[‘time‘] = infos[4] 16 movies.append(movie) 17 18 print(movies)