简介
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。在使用XPath前我们需要大致了解HTML / XHTML;XML / XML 命名空间,的相关知识。
什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准
XPath 路径表达式: XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPath定位方法
首先我们需要导入lxml库
from lxml import html
实例化etree对象
etree = html.etree
将本地页面原码加载到etree对象中
tree = etree.parse('baidu.html')
定位的几种格式: 使用 .xpath()
xp = tree.xpath('/html/head/title/text()')
print(xp)
xp = tree.xpath('//p/text()')
print(xp)
xp = tree.xpath('/html/body/div[@class="song"]')
xp = tree.xpath('/html/body/div[@class="tang"]/ul/li[5]//text()')[0]
xp = tree.xpath('//div[@class="song"]/img/@src')[0]
爬取图片
这里爬取的是糗事百科热图前三页的内容 爬取前三页的内容我们使用循环,并使用 ==.format()==来切换页面url。
获取前三页url
url = 'https://www.qiushibaike.com/imgrank/page/{}/'
for i in range(1,4):
page_url = url.format(i)
总代码:
import requests
from lxml import html
import os
if __name__ == '__main__':
header = {
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
}
url = 'https://www.qiushibaike.com/imgrank/page/{}/'
if not os.path.exists('QiutuLib'):
os.mkdir('./QiutuLib')
for i in range(1,4):
page_url = url.format(i)
response = requests.get(url=page_url,headers=header)
ht = response.text
etree = html.etree
tree = etree.HTML(ht)
page_list = tree.xpath('//div[@class="article block untagged mb15 typs_hot"]')
print(len(page_list))
for page in page_list:
text = page.xpath('.//div[@class="thumb"]//img/@src')[0]
pic_url = 'https:'+text
resp = requests.get(url=pic_url,headers=header)
pic = resp.content
fileName = text.split('/')[-1]
file_path = './QiutuLib/' + fileName
with open(file_path,'ab') as f:
f.write(pic)
运行截图:
|