python爬虫学习笔记(二)

该笔记主要用于整理在进行python爬虫学习中笔者认为比较重要的笔记,主要来自于bilibili和几本入门书籍中的内容,篇幅有限,具体示例可查看bilibili等资源和相关书籍。

一 xpath解析

xpath是进行xml解析的工具,可以直接读取xml文件中的信息,html是xml的一个子集。

from lxml import etree

# 或者
from lxml import html
etree = html.etree

爬取.html数据

加载数据

et = etree.HTML(pageSource)  # 返回element对象

提取内容

result = et.xpath("/html")  # 从html的根节点进行查找
result = et.xpath("/html/body")  # 中间的/表示一层html节点
result = et.xpath("/html/body/span")
result = et.xpath("/html/body/span/text()")  # text()提取标签内的文本
# <li><a href="http://www.baidu.com">百度</a></li>  这段html代码中href属性表示超链接的url,当网页中的文字被点击时触发的url,百度时展示在页面上的文字
result = et.xpath("html/body/*/li/a/text()")  # *表示任意字符,通配符
result = et.xpath("/html/body/*/li/a/@href")  # 获取标签内的属性值,@表示获取属性,后跟属性名
result = et.xpath("//a/@href")  # //表示任意位置 //li/a/@href
result = et.xpath("//div[@class='job']/text()")  # 根据属性限定,[]里的内容限定这一节点下的属性值,注意单双引号的使用
result = et.xpath("html/body/ul/li")  # 返回的也是element元素
for item in result:
    href = item.xpath("./a/@href")[0]  # .表示当前元素 [0]表示列表输出取第一个,实际上列表中只有要给元素,但会以列表形式输出
    text = item.xpath("./a/text()")[0]

二 代码实战

获取某网站的源代码并提取对应的超链接。

# 获取页面中的超链接
# 导入所需的库
import requests
from lxml import etree

# 获取页面源代码
url = "xxxxx"
resp = requests.get("")
resp.encoding = 'utf-8'   # 'gdk'
print(resp.text)  # 检查源代码获取是否有问题

et = etree.HTML(resp.text)

suburl = et.xpath("//ul[@class = '限定']/li/a/@href")   # 获取的有可能没有域名,所以在进行处理时需要加域名
domain = "https://www.xxxx.cn"   # 域名
for item in suburl:
    urls = domain + item
    print(url)  # 获取的url可以输入网页直接打开


xpath适合提取节点标签,正则适合处理大段的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值