BeautifulSoup


BeautifulSoup

 
[

百里守约

, , ]
 

CSS选择器 select

通过select()直接传入CSS选择器即可完成选择

1、select('某种选择器(id,class,标签...选择器)'),返回的是一个列表

2、层级选择器:

-soup.select(''):>表示的是一个层级

-soup.select():空格标示的是多个层级

html='''

Hello

  • Foo
  • Bar
  • Jay
  • Foo
  • Bar
''' from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml') print(soup.select('.panel .panel-heading')) print(soup.select('ul li')) print(soup.select('#list-2 .element')) #id加#,class加.,标签名什么不加 print(soup.select('ul')[0])
 
[

Hello

] [
  • Foo
  • ,
  • Bar
  • ,
  • Jay
  • ,
  • Foo
  • ,
  • Bar
  • ] [
  • Foo
  • ,
  • Bar
  • ]
    • Foo
    • Bar
    • Jay
     
    from bs4 import BeautifulSoup
    fp=open('./test.html','r',encoding='utf-8')
    soup=BeautifulSoup(fp,'lxml')
    # print(soup.select('.tang'))
    print(soup.select('.tang>ul>li>a'))
       
    查看代码
    
    [清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村, 秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山, 岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君, 杜甫, 杜牧, 凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘]
     
    from bs4 import BeautifulSoup
    fp=open('./test.html','r',encoding='utf-8')
    soup=BeautifulSoup(fp,'lxml')
    print(soup.select('.tang>ul a'))
       

    获取标签之间的文本数据

    1、soup.a.text/string/get_text()

    -text/get_text():可以获取一个标签中所有的文本内容

    -string:只可以获取该标签下面直系的文本内容

     
    from bs4 import BeautifulSoup
    fp=open('./test.html','r',encoding='utf-8')
    soup=BeautifulSoup(fp,'lxml')
    print(soup.select('.tang>ul a')[0].text)
    print(soup.select('.tang>ul')[0].text)
    清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村
    ?
    清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村
    秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山
    岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君
    杜甫
    杜牧
    杜小月
    度蜜月
    凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘
     

    获取标签中的属性值

    soup.a['href']

    from bs4 import BeautifulSoup
    fp=open('./test.html','r',encoding='utf-8')
    soup=BeautifulSoup(fp,'lxml')
    print(soup.select('.tang>ul a')[0]['href'])