xpath的运用

# coding: utf-8
import requests

# lxml 包 专门用处理一些html和xml的  打开cmd命令   输入pip install lxml
# 引入etree模块

from lxml import etree

# xpath  一组特定的规则,可以根据特殊的语法结构,匹配网页中的数据
# // 从当前的标签开始查找
# @ 表示获取属性或者根据属性查找
# //a[@class="archive-title"] 找到class为archive-title的所有的a标签
# //a[@class="archive-title"]/@href 找到class为archive-title的所有的a标签中的href属性值
# //nav[@id="top-nav"]/div/div[1] 根据id查找标签 并且找到div下第1个div
# //img 找到所有的img标签
# //div[@class="post-meta"]/p[1]/text() 获取第一个p标签中直接文本内容,不包含子标签的内容
# //div[@class="post-meta"]/p[1]//text() //双斜杠,获取包含子标签文本在内的文本内容

url = 'http://blog.jobbole.com/all-posts/'
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'
}
resposne = requests.get(url,headers=headers)

# 将html源代码转换为树形结构数据

html = etree.HTML(resposne.content)

# 根据xpath从html中提取img标签,返回的是列表,列表中存放就是找到的标签对象
# imgs = html.xpath('//img')
# for img in imgs:
#     # 查找img标签src属性值
#     src = img.xpath('@src')
#     print src
links = html.xpath('//a[@class="archive-title"]/text()')
for link in links:
    # 找到href属性值,返回的是列表,可以取出列表中的第0个元素
    href = link.xpath('@href')[0]
    title = link.xpath('text()')[0]
    print u'博客标题:%s  链接:%s'%(title, href)

猜你喜欢

转载自blog.csdn.net/DragonASDASD/article/details/90081302