Python爬虫系列20-十万个冷笑话视频播放量采集
2022-08-26 本文已影响0人
Tony_Pm
序言
有的人之所以能够成事,除了自身的能力、天赋、背景之外,他们还有一种成功的特质,那就是专注力,他们能够专注于一件事,不想其他,通过不断地实践,就努力去做好这件事,这样就不容易被外界环境所干扰和造成影响。
他们会不惜一切代价,会花费大量的时间和精力去做好它,熟能生巧,到时候即使不成功,也是有巨大收获的。
我也始终坚信,我们每个人的潜力都是不可估量的,只要努力去做,想做的事情,总是会取得很大的效果的。
实战
image.png代码实战
我这里采用的是自动化采集,当然也有别的方式哈;大家可自行研究一下。
from selenium import webdriver
from lxml import etree
import pandas as pd
# 数据列表
urls = []
title = []
views = []
wd = webdriver.Chrome(r'C:\Users\Tony\PycharmProjects\Module_Tony_Demo\Moudle\chromedriver.exe')
# 请求
wd.get('https://search.bilibili.com/all?keyword=%E7%AC%91%E8%AF%9D&from_source=web_search')
# 获取首页HTML
f = wd.page_source
page = etree.HTML(f)
up = page.xpath('//a[@class="up-name"]/text()')
q = page.xpath('//li[@class="video-item matrix"]')
# 获取二级页面 url,标题
for i in q:
url = 'https:' + i.xpath('./a/@href')[0]
title.append(i.xpath('./a/@title')[0])
urls.append(url)
# 二级页面数据获取
def two(tex):
text = etree.HTML(tex)
ll = text.xpath('//div[@class="video-data"]')
for i in ll:
view = i.xpath('./span[@class="view"]/@title')[0]
view = view.replace("总播放数", "")
views.append(view)
for m, k in enumerate(urls):
try:
wd.get(k)
tt = wd.page_source
two(tt)
except:
print('出现空值%s' % (m + 1))
# 存储
writer = {'播放量': views}
uu = pd.DataFrame(writer)
uu.to_excel('笑话视频观看人数.xlsx', index=0)
image.png