使用xpath 需要导入lxml 这个包
没有装的 可以 pip install lxml
我们就以 http://langlang2017.com/ 为例简单介绍一下xpath的使用
import requests
#从lxml中导入etree 这个就是转化页面
from lxml import etree
#代理ip
proxy = {
"HTTP": "113.3.152.88:8118",
"HTTPS": "219.234.5.128:3128",
}
url = "http://langlang2017.com/"
content = requests.get(url, proxies=proxy).content.decode("utf-8")
#把请求回来的页面 用etree.HTML 进行转换
html_tree = etree.HTML(content)
#这样就可以使用xpath了
# 在xpath中 / 代表当前文档路径 所以第一次/就是在<html></html>
# // 代表全局查找
#这里意思 在网页中全局找到<title>标签获取里面的 文本内容 返回是一个列表
title = html_tree.xpath('//title/text()')
# @是获取指定属性
#//div[@class="dizhi"]/text()
# 在网页中全局找到<div class="dizhi"> 这个标签的文本内容
# | 代表 and的意思
#//div[@class="dizhi"]/text()|//div[@class="beian"]//text()
#所以这句就是全局找到<div class="dizhi"> 这个标签和<div class="beian"> 这个标签的文本内容
info=html_tree.xpath('//div[@class="dizhi"]/text()|//div[@class="beian"]//text()')
# print(info) #取div的所有文本
info=html_tree.xpath('//div[@class="dizhi"]/text()|//div[@class="beian"]/text()|//div[@class="beian"]/a/text()')
# print(info[0],"\t",info[-2]+info[-1])
li_lxml=html_tree.xpath('//li')
for i in li_lxml:
#如果想获取 img 或者 a 标签的 alt,src,href的属性值
#就可以使用img/@alt
img_info=i.xpath('./img/@alt|./img/@src')
print(img_info[0],img_info[-1])
1444

被折叠的 条评论
为什么被折叠?



