【Python】-初学笔记-B站热门视频排行爬虫(re和xpath方法)
初学了点Python爬虫,看什么都想爬一爬,但又一想,爬了干嘛呢?感觉re正则的表达,和xpath比较易懂一点。就是模板上套一套内容
BeautifulSoup没搞懂,欢迎大家再搞个bs4版的,学习学习。
re版:
import requests,re
url = 'https://www.bilibili.com/v/popular/rank/all'
resp = requests.get(url)
page_content = resp.text
resp.close()
obj = re.compile(r'data-rank="(?P<rank>.*?)" class="rank-item">.*?<div class="img"><a href="(?P<href>.*?)" target=.*?class="title">(?P<title>.*?)</a>.*?alt="play">.*?(?P<hot>.*?)</span>',re.S)
result = obj.finditer(page_content)
count = 0
for i in result:
rank = i.group('rank')
title = i.group('title').strip()
hot = i.group('hot').strip()
href = i.group('href')
print(rank,title,hot,'https:'+href)
count += 1
if count >= 20:# 展示的数量
break
print('done')
xpath版:
import requests
from lxml import etree
url = 'https://www.bilibili.com/v/popular/rank/all'
resp = requests.get(url)
resp.close()
html = etree.HTML(resp.text)
lists = html.xpath('//*[@id="app"]/div/div/div/ul/li')# 展示的数量
for i in lists:
rank = i.xpath('./div/div/i/span/text()')
title = i.xpath('./div/div/a/text()')
hot = "".join(i.xpath('./div/div/div/div/span/text()')).strip()
href = i.xpath('./div/div/a/@href')
print(rank,title,hot,"https:" + href)
print('done')
运行效果:
http://inews.gtimg.com/newsapp_ls/0/14326165609/0 松仔 发表于 2021-12-20 13:20
invalid syntax小白太难了
这是语法报错,我这边运行没有显示报错。是不是什么第三方库没安装,就是 import后的库 感谢分享 可以在升级一下,做个多线程快速处理 新手表示能看得懂这个代码 t1r0 发表于 2021-12-20 10:38
可以在升级一下,做个多线程快速处理
还不会多线程处理,不过数据也不多 LYKDR 发表于 2021-12-20 10:53
新手表示能看得懂这个代码
一起学习学习,哈哈 一起学习学习,哈哈 学习支持一下 一起学习,共同进步 学习支持一下
页:
[1]
2