Python爬蟲lxml解析實戰
阿新 • • 發佈:2018-10-21
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.36View Code", "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)
可參考博客鏈接(我就懶得寫了):http://www.cnblogs.com/zhangxinqi/p/9210211.html#_label11
Python爬蟲lxml解析實戰