码迷,mamicode.com
首页 > 编程语言 > 详细

Python爬虫lxml解析实战

时间:2018-10-21 19:36:47      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:元素   分享   hang   webkit   for   img   headers   网站   python爬虫   

XPath常用规则
/                            从当前节点选取直接子节点
//                           从当前节点选取子孙节点
.                            选取当前节点
..                           选取当前节点的父节点
@                          选取属性
*                           通配符,选择所有元素节点与元素名
@*                        选取所有属性
[@attrib]               选取具有给定属性的所有元素
[@attrib=value]    选取给定属性具有给定值的所有元素
[tag]                     选取所有具有指定元素的直接子节点
[tag=text]            选取所有具有指定元素并且文本内容是text节点   
技术分享图片
"""爬取豆瓣网站的信息"""
import requests
from lxml import etree

# 请求头设置
headers = {
    "User-Agentv": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3554.0 Safari/537.36",
    "Referer": "https://movie.douban.com/",
}

url = "https://movie.douban.com/cinema/nowplaying/chongqing/"
# 发起请求
rep = requests.get(url, headers=headers)
text = rep.text
# 转换成html格式
html = etree.HTML(text)
# 找到子孙节点ul标签
ul = html.xpath("//ul[@class=‘lists‘]")[0]
# 当前ul下的所有li标签
lis = ul.xpath("./li")
movies = []
# 循环每个li标签
for li in lis:
    # 直接@li标签的属性获取值
    title = li.xpath("@data-title")[0]
    score = li.xpath("@data-score")[0]
    region = li.xpath("@data-region")[0]
    actors = li.xpath("@data-actors")[0]
    director = li.xpath("@data-director")[0]
    liimg = li.xpath(".//img/@src")
    movie = {
        "title": title,
        "score": score,
        "region": region,
        "actors": actors,
        "director": director,
        "liimg": liimg,
    }
    movies.append(movie)
print(movies)
View Code

可参考博客链接(我就懒得写了):http://www.cnblogs.com/zhangxinqi/p/9210211.html#_label11

Python爬虫lxml解析实战

标签:元素   分享   hang   webkit   for   img   headers   网站   python爬虫   

原文地址:https://www.cnblogs.com/Guishuzhe/p/9826146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!