好久没写了,就把上课做的一个小东西拿出来分享一下吧。
百度网页截图如下 ↓↓↓
程序运行输出结果截图 ↓↓↓
上代码 ↓↓↓
from lxml import etree from lxml import html import requests headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36'} page = requests.get("https://www.baidu.com",headers=headers) html = page.text #print(source1) # 从字符串解析 element = etree.HTML(html) # 元素列表,获取的方式列出了如下两种 # ps = element.xpath('//*[@id="hotsearch-content-wrapper"]/li/a/span[2]') ps = element.xpath('//*[@class="title-content-title"]') #热搜文本内容 text = [] if len(ps) > 0: for p in ps: #输出节点的文本 text1 = p.text text.append(text1) else: print("空") x = element.xpath('//*[@class="s-hotsearch-content"]/li') #热搜文本对应的排名 index = [] for x1 in x: #获取节点的属性 index1 = x1.get("data-index") index.append(index1) print(text) print(index) #定义一个对文本和排名进行匹配的函数,返回一个字典型数据 def PP(index_array,text_array): x = {} i = 0 for index_a in index_array: #index_a = int(index_a) x[index_a] = text_array[i] i = i + 1 return x re_text = PP(index,text) #对字典性数据按key进行排序,即key=lambda re:re[0],排序完成后再转换为字典型数据 last_text = dict(sorted(re_text.items(),key=lambda re:re[0]))
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)