网上的都太旧了,所以把这个能用的给发出来了
""" 1.导入lxml 2.将获取到的网页内容转换为xml 3.通过Xpath来定位和解析页面中的内容 """ from lxml import html import re # 读取 HTML 文件 with open("douban.html", "r", encoding="utf-8") as f: page = f.read() # 解析 HTML tree = html.fromstring(page) # 先构建解析树(Element对象) titles=tree.xpath("//*[@class='title'][1]/text()") # 解析树调用xpath,正确! print(titles) rating_num=tree.xpath("//*[@class='rating_num'][1]/text()") print(rating_num) year=tree.xpath('//*[@id="content"]/div/div[1]/ol/li[3]/div/div[2]/div[2]/p[1]/text()') for item in year: # print(item.strip().search("")) numbers = re.findall(r'\d+', item.strip()) print(numbers) print("******************************") #定位到包含所有数据内容的元素 data_list=tree.xpath('//ol/li') #对定位到包含所有元素的列表便可遍历,得到包含单条数据的元素 for i in data_list: #提取单条数据中的详细内容 titles=i.xpath(".//span[@class='title'][1]/text()") score=i.xpath(".//span[@class='rating_num'][1]/text()") number=i.xpath(".//div/div[2]/div[2]/div/span[4]/text()") print('电影的名称',titles[0],score[0],'评价人数',number[0])