【笔记】Python爬虫之Xpath、BS4解析

1、Bs4解析

#安装bs 4

import requests
from bs4 import BeautifulSoup
#   1
url=""

resp=requests.get(url)

#   2.将请求到的数据变成 BeautifulSoup 对象
sp=BeautifulSoup(resp.text,'lxml')
#               ↑加.text    ↑固定lxml

#————————————————————————————————————————————————————————————————————————————————————————————————————
#  sp.***   ,***可替换成标签,比如div,a等

#————————————————————————————————————————————————————————————————————————————————————————————————————

#  sp.find(标签,class_="属性")
#  sp.find_all(标签,class_="属性")

#————————————————————————————————————————————————————————————————————————————————————————————————————
#  sp.select(".属性")    可以做选择器,返回的是一个列表       .表示类,后边跟类的属性

#————————————————————————————————————————————————————————————————————————————————————————————————————
#  sp.select(".属性 > ul")  层级选择:.类属性下有个ul的标签
#            ↑ 类的属性  ↑ 标签   # > 两边一定要有空格,>可以连续用
#用空格表示多个层级,>表示一个层级

#————————————————————————————————————————————————————————————————————————————————————————————————————
#获取标签之间的文本等可以直接.text 或 .string 或 get_text()
#如:
# print(sp.select(".属性 > ul").text) 或 print(sp.select(".属性 > ul").string)
#区别:-text get_text()可以获取标签下所有文本内容
#     -string 只可以获取标签下直系文本内容

#————————————————————————————————————————————————————————————————————————————————————————————————————

#sp.a["属性值"],可以获取标签下的属性值,直接跟在...["..."]

 

2、Xpath解析

import requests
from lxml import html
etree = html.etree

#实例化etree对象,运用etree中的xpath方法    安装lxml
#实例化方法:from lxml import html
#          etree = html.etree
#    -1.将本地html文档中源码数据加载到etree对象中:
#         etree.parse(文档)

#    -2.将互联网上加载的源码数据加载到该对象中:
#         etree.HTML(page_text)
#    -xpath(‘xpath表达式’)

#   r=xxx.xpath("xx//xx/xx")  // 表示多个层级,/表示一个层级,相当于空格和 >
#   r=xxx.xpath('div[@class="song"]')   定位到class属性为song的div标签   (属性定位)
#   r=xxx.xpath('div[@class="song"]/p[3]')   索引定位,!!,从1开始,不是从0开始的
#   r=xxx.xpath('div[@class="song"]/p[3]/text()')[0]   加上/text变成文本列表,在外边加[0]表示取列表的第一个元素

#取文本:   /text(),获取表示标签中直系的文本内容   //text(),获取表示标签中所有的文本内容
#取属性值:  r=xxx.xpath('//div[@class="song"]/img/@src')    /img/@src 表示img标签下属性src的值(列表)

 

posted @ 2024-03-16 09:47  HanaKoo  阅读(61)  评论(0编辑  收藏  举报
@format