建网站简易软件,福永品牌设计公司,wordpress主题seo模板,网站前置审批项 教育文章目录 一、背景介绍二、代码讲解2.1 爬虫2.2 tkinter界面2.3 存日志 三、软件演示视频四、说明 一、背景介绍
你好#xff0c;我是马哥python说#xff0c;一名10年程序猿。
最近我用python开发了一个GUI桌面软件#xff0c;目的是爬取相关YouTube博主的各种信息#… 文章目录 一、背景介绍二、代码讲解2.1 爬虫2.2 tkinter界面2.3 存日志 三、软件演示视频四、说明 一、背景介绍
你好我是马哥python说一名10年程序猿。
最近我用python开发了一个GUI桌面软件目的是爬取相关YouTube博主的各种信息字段包括 视频标题、视频链接、博主名称、博主链接、国家、telegram链接、whatsapp链接、twitter链接、facebook链接、instagram链接。 以近期某热门事件为例。
演示视频 用python爬YouTube博主并开发成GUI桌面软件 运行截图
爬取数据截图
实现思路 通过按指定关键词搜索视频通过视频进入博主的主页简介爬取博主的各种联系信息。 并把源码封装成exe文件方便没有python环境或者不懂技术的人使用它。
二、代码讲解
2.1 爬虫
本爬虫是通过selenium模拟手工搜索的过程所以需要提前安装好chrome浏览器和chromedriver驱动。 安装chrome浏览器和chromedriver驱动的过程请自行解决不再赘述。 把chromedriver放到exe文件的旁边同级目录下即可。 展示部分核心代码 初始化csv文件
def init(self):with open(f{self.query}.csv, a, newline, encodingutf_8_sig) as f:writer csv.writer(f)writer.writerow([视频标题, 视频链接, 博主名称, 博主链接, 国家, telegram链接, whatsapp链接, twitter链接, facebook链接, instagram链接])爬博主信息
# 先解析出所有链接
contact_url_els self.browser.find_elements(By.XPATH, //*[idlink-list-container]/a)
for j in contact_url_els:url j.get_attribute(href)if t.me in url: # 电报链接de_url unquote(url)de_url_dict parse_qs(urlparse(de_url).query)url de_url_dict.get(q)[0]telegram_url urlif wa.link in url or api.whatsapp.com in url: # whatsapp链接de_url unquote(url)de_url_dict parse_qs(urlparse(de_url).query)url de_url_dict.get(q)[0]whatsapp_url urlif twitter.com in url: # twitter链接de_url unquote(url)de_url_dict parse_qs(urlparse(de_url).query)url de_url_dict.get(q)[0]twitter_url urlif facebook.com in url: # facebook链接de_url unquote(url)de_url_dict parse_qs(urlparse(de_url).query)url de_url_dict.get(q)[0]facebook_url urlif instagram.com in url: # instagram链接de_url unquote(url)de_url_dict parse_qs(urlparse(de_url).query)url de_url_dict.get(q)[0]instagram_url url2.2 tkinter界面
界面部分代码
# 创建主窗口
root tk.Tk()
root.title(YouTube爬虫-定制化开发 | 马哥python说)
# 设置窗口大小
root.minsize(width850, height650)show_list_Frame tk.Frame(width800, height450) # 创建消息列表分区
show_list_Frame.pack_propagate(0)
show_list_Frame.place(x30, y120, anchornw) # 摆放位置# 滚动条
scroll tk.Scrollbar(show_list_Frame)
# 放到Y轴竖直方向
scroll.pack(sidetk.RIGHT, filltk.Y)2.3 存日志
软件运行过程中会在同级目录下生成logs文件夹文件夹内会出现log文件记录下软件在整个运行过程中的日志方便长时间运行、无人值守出现问题后的debug。 部分代码
class Log_week():def get_logger(self):self.logger logging.getLogger(__name__)# 日志格式formatter [%(asctime)s-%(filename)s][%(funcName)s-%(lineno)d]--%(message)s# 日志级别self.logger.setLevel(logging.DEBUG)# 控制台日志sh logging.StreamHandler()log_formatter logging.Formatter(formatter, datefmt%Y-%m-%d %H:%M:%S)# info日志文件名info_file_name time.strftime(%Y-%m-%d) .log# 将其保存到特定目录ap方法就是寻找项目根目录该方法博主前期已经写好。case_dir r./logs/info_handler TimedRotatingFileHandler(filenamecase_dir info_file_name,whenMIDNIGHT,interval1,backupCount7,encodingutf-8)self.logger.addHandler(sh)sh.setFormatter(log_formatter)self.logger.addHandler(info_handler)info_handler.setFormatter(log_formatter)return self.logger三、软件演示视频
演示视频: 【爬虫演示】用python爬YouTube博主信息并开发成GUI桌面软件
四、说明
附完整源码【GUI开发】用python爬YouTube博主信息并开发成exe软件 我是 马哥python说持续分享python源码干货中 推荐阅读【爬虫GUI】YouTube评论采集软件突破反爬可无限爬取