16 select和css选择器(提取元素详解)

 

 

  # 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)

16 select和css选择器(提取元素详解)

上一篇:MVC Filters


下一篇:安装node.js和vue