1. 程式人生 > >Python爬蟲lxml解析實戰

Python爬蟲lxml解析實戰

img 標簽 lxml display XML score 解析 url 子節點

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解析實戰