实战|教你用Python+PyQt5制作一款带有界面的B站爬虫小程序
前言
大家好,我是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 ')