前言
大家好,我是J哥。
目前,市场上有大量 Python图形用户界面(GUI)开发框架可供选择,如wxpython 、pyqt5、Gtk、Tk等。本文将用Python结合PyQt5制作一款B站视频数据爬虫小程序,可以通过输入关键字、页码以及选择存储路径后,下载相应的数据,效果如下:
以下将详细介绍这个GUI工具的制作方法,如需本文完整代码,菜J学Python公众号后台回复「GUI」即可。
开发环境
Python3
Pycharm
PyQt5
Qt Designer
requests
准备工作
首先,新建一个bilibili.py文件。获取B站视频数据的爬虫代码相对简单,只要在设置好url的keyword和page参数,即可轻松获取数据。以下贴出完整代码:
# -*- coding = uft-8 -*-
# @Time : 2020-11-09
# @Author : J哥
# @File : GUI工具
import requests
from lxml import etree
import time
import random
import csv
def get_target(keyword,page):
for i in range(1,page + 1):
headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
url = 'https://search.bilibili.com/all?keyword={0}&from_source=nav_suggest_new0&page={1}'.format(keyword,page)
html = requests.get(url.format(i),headers = headers)
bs = etree.HTML(html.text)
items = bs.xpath('//li[@class = "video-item matrix"]')
for item in items:
title = item.xpath('div[@class = "info"]/div/a/@title')[0]
click = item.xpath('div[@class = "info"]/div[3]/span[1]/text()')[0].strip('\n ').replace("万","")
danmu = item.xpath('div[@class = "info"]/div[3]/span[2]/text()')[0].strip('\n ')
date = item.xpath('div[@class = "info"]/div[3]/span[3]/text()')[0].strip('\n '