列表,及xpath,requests爬虫的应用练习。
[Python] 纯文本查看 复制代码 import requests
from lxml import etree
url = 'https://www.bilibili.com/v/popular/rank/all'
resp = requests.get(url)
html = etree.HTML(resp.text)
titles_list = html.xpath('//*[@id="app"]/div/div[2]/div[2]/ul/li/div/div[2]/a/text()')
key_words = '朋友' # 自定义搜索关键词,空字符则显示所有
if key_words in str(titles_list):
searched = [s for s in titles_list if key_words in s] # 从标题列表中找到包含关键词的内容,并创建到新列表里
print(f'关于"{key_words}",找到以下结果:\n排名 / 标题 / 热度 / 链接')
for i in range(len(searched)):
index = titles_list.index(searched[i])
rank = (html.xpath('//*[@id="app"]/div/div[2]/div[2]/ul/li/div/div[1]/i/span/text()'))[index]
title = searched[i]
hot = ((html.xpath('//*[@id="app"]/div/div[2]/div[2]/ul/li/div/div[2]/div/div/span[1]/text()'))[index]).strip()
href = (html.xpath('//*[@id="app"]/div/div[2]/div[2]/ul/li/div/div[2]/a/@href'))[index]
print(rank, title, hot, "https:" + href)
else:
print(f'没有找到关于"{key_words}"的相关内容。')
运行效果如下:
[Asm] 纯文本查看 复制代码 关于"朋友",找到以下结果:
排名 / 标题 / 热度 / 链接
21 【我给朋友买了块墓地】结果烂尾了!! 168.1万 https://www.bilibili.com/video/BV1n44y1M7E3
55 女朋友让我穿最贵的衣服陪她逛商场。。 359.1万 https://www.bilibili.com/video/BV1Ua411h7P2
66 【特鲁索娃】祝女性朋友们节日快乐 45.6万 https://www.bilibili.com/video/BV1DU4y1f7QT
97 小朋友天性纯良?罗翔老师:我呸! 95.5万 https://www.bilibili.com/video/BV1ML411K7U2
|