业务需求:给到一个Excel文件里面有店铺名称,在酒仙网搜索店铺,查看是否关店和商品是否下架

# -*- coding: UTF-8 -*-import requests
from tkinter import *
from tkinter import filedialog, messagebox, ttk
import xlrd
import xlwt
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutorclass ExcelEntity:__name1 = ''__name2 = ''__key3 = ''__key4 = ''__state5 = ''__state6 = ''def set_name1(self, name1):self.__name1 = name1def get_name1(self):return self.__name1def set_name2(self, name2):self.__name2 = name2def get_name2(self):return self.__name2def set_key3(self, key3):self.__key3 = key3def get_key3(self):return self.__key3def set_key4(self, key4):self.__key4 = key4def get_key4(self):return self.__key4def get_state5(self):return self.__state5def set_state5(self, state5):self.__state5 = state5def get_state6(self):return self.__state6def set_state6(self, state6):self.__state6 = state6# 解析html文本
def readHtml(b):if '店铺名称' in b.get_name2():b.set_state5('备注')b.set_state6('状态')else:url = 'http://list.jiuxian.com/search.htm?key=' + b.get_name2() + '&area=2'# 使用BeautifulSoup解析html文本html = BeautifulSoup(requests.get(url).text, features="lxml")noticBox = html.find_all('div', class_='notic_box')if len(noticBox) > 0:b.set_state5('已下架')b.set_state6('关店')else:b.set_state5('未下架')b.set_state6('在开')return b# 读取excel
def readExcel(name):list = []wb = xlrd.open_workbook(name)sheet1 = wb.sheet_by_index(0)rowAllIndex = sheet1.nrowsfor rowIndex in range(0, rowAllIndex):bean = ExcelEntity()for colIndex in range(0, sheet1.ncols):value = sheet1.cell_value(rowIndex, colIndex)if value is None:value = ''if colIndex == 0:bean.set_name1(value)elif colIndex == 1:bean.set_name2(value)elif colIndex == 2:bean.set_key3(value)elif colIndex == 3:bean.set_key4(value)elif colIndex == 4:bean.set_state5(value)elif colIndex == 5:bean.set_state6(value)list.append(bean)# 线程池executor = ThreadPoolExecutor(max_workers=100)for data in executor.map(readHtml, list):ri = list.index(data)+1ai = len(list)strVar2.set('解析html中...')progressbarOne['value'] = ri * 100 / aistrVar3.set(str(ri) + '/' + str(ai))# 刷新页面root.update()print(data.get_name2())return list# 创建新的excel并写入
def writeExcel(readList):strVar2.set('写入excel表格中...')book = xlwt.Workbook()book.add_sheet('sheet1')sheet1 = book.get_sheet(0)for b in readList:index = readList.index(b)ind = readList.index(b)+1allIndex = len(readList)progressbarOne['value'] = ind * 100 / allIndexstrVar3.set(str(ind) + '/' + str(allIndex))root.update()sheet1.write(index, 0, b.get_name1())sheet1.write(index, 1, b.get_name2())sheet1.write(index, 2, b.get_key3())sheet1.write(index, 3, b.get_key4())sheet1.write(index, 4, b.get_state5())sheet1.write(index, 5, b.get_state6())book.save('./店铺数量New.xls')strVar2.set('写入完成!在该应用所在的目录下找到【店铺数量New.xls】文件')# 选择文件
def funOpen():fileName = filedialog.askopenfilename(title='选择文件',filetypes=[("Excel文件", "*.xlsx"), ("Excel文件", "*.xls")],initialdir='./')if fileName is not None and len(fileName) > 0:strVar1.set(fileName)writeExcel(readExcel(fileName))if __name__ == '__main__':print()
root = Tk()
root.title('酒仙网店铺爬虫')
root.minsize(400, 300)
# root.grid_rowconfigure([1, 2], weight=1)
# root.grid_columnconfigure([1, 2, 3, 4], weight=1)
root.columnconfigure(1, weight=1)
root.rowconfigure(1, weight=2)
root.rowconfigure(2, weight=1)
root.rowconfigure(3, weight=2)
strVar1 = StringVar()
strVar2 = StringVar()
strVar3 = StringVar()
strVar1.set('将要显示的文件名')
strVar2.set('进度说明')
strVar3.set('0/0')
btnOpen = Button(root, text='选择Excel文件', command=funOpen).grid(row=1, column=1)
labelName = Label(root, textvariable=strVar1).grid(row=2, column=1)
f1 = Frame(root)
labelProgress = Label(f1, textvariable=strVar2).grid(row=1, column=1)
labelProgressIndex = Label(f1, textvariable=strVar3).grid(row=2, column=2)
# 进度条
progressbarOne = ttk.Progressbar(f1)
# 进度值最大值
progressbarOne['maximum'] = 100
# 进度值初始值
progressbarOne['value'] = 0
progressbarOne.grid(row=2, column=1)
f1.grid(row=3, column=1)
root.mainloop()

首先要先安装pyinstaller,pip install pyinstaller ,最后通过命令 pyinstaller -F xxx.py --noconsole打包成exe可执行程序

python简单爬虫代码相关推荐

  1. python简单爬虫代码-最精简的爬虫 --仅需4行代码(python)

    最精简的爬虫 --仅需4行代码(python) 刚刚整理了下爬虫系列,于是乎就开始了第一次的技术分享 今天,我们主要讲述的是思路,思路,思路. 相比起,直接贴代码,思路显的更为重要 当初,自己的坑,希 ...

  2. python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...

    原标题:python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息 最近经常有人问我,明明看着教程写个爬虫很简单,但是自己上手的时候就麻爪了...那么今天就给刚开始学习爬虫的同学,分享一下怎么一步 ...

  3. python简单爬虫代码-一则python3的简单爬虫代码

    不得不说python的上手非常简单.在网上找了一下,大都是python2的帖子,于是随手写了个python3的.代码非常简单就不解释了,直接贴代码. 代码如下: #test rdp import ur ...

  4. python简单爬虫代码-用Python编写一个简单的爬虫

    作者信息: Author : 黄志成(小黄) 博客地址: 博客 呐,这是一篇福利教程.为什么这么说呢.我们要爬取的内容是美图网站(嘿嘿,老司机都懂的) 废话不多说.开始今天的表演. 这个图集网站不要问 ...

  5. python简单爬虫代码-使用Python3.5写简单网络爬虫

    <一>用urllib库访问URL并采集网络数据 -1. 直接采集 发送请求,打开URL,打印传回的数据(html文件) - 2. 模拟真实浏览器访问 1)发送http头信息(header) ...

  6. python简单爬虫代码,python入门

    ##python爬取慕课网首页课程标题与内容介绍 效果图: 思路: 获取页面内容存入html --> 利用正则表达式获取所有课程块的div盒子存入everydiv --> 在每个课程块中抓 ...

  7. python简单爬虫代码-python简单爬虫(二)

    ") file.write(" for data inself.datas: file.write(" file.write(' '+str(data['url'])+' ...

  8. python简单爬虫 指定汉字的笔画动图下载

    python简单爬虫 指定汉字的笔画动图下载 分析过程 打开网址首页http://www.hanzi5.com 选择一个字,比如"虐" 查看该汉字动图地址 右键该汉字动图,选择在新 ...

  9. Python 简单爬虫下载小说txt

    Python 简单爬虫下载小说txt #第一次写爬虫代码 欢迎交流指正 我们范例爬取的对象是笔趣阁的<圣墟> (最近非常火的连载小说) ##为什么选择笔趣阁# 主要是因为笔趣阁的源代码没有 ...

  10. Python简单爬虫第六蛋!(完结撒花)

    第六讲: 今天我们来实战一个项目,我本人比较喜欢看小说,有一部小时叫<圣墟>不知道大家有没有听说过,个人觉得还是不错的,现在联网的时候,都可以随时随地用手机打开浏览器搜索查看,但是有时候也 ...

最新文章

  1. oracle initialization or shutdown in progress解决方法
  2. 【深度学习】如何从结构出发更好的改进一个神经网络(二)
  3. BOM 的 变量 (技术, 生产, 销售, 计划)
  4. kubernetes1.30集群部署+dashboard+heapster
  5. java业务层怎么设计_java – 在业务逻辑和数据层看起来重叠时分解它们的最佳设计?...
  6. Lecture 2: Preliminary Review--Mind Map
  7. html 最小长度单位,html见长度单位尺寸单�?CSS布局HTML
  8. Spring Boot 学习之路二 配置文件 application.yml
  9. 天津商业大学C语言题库,天津商业大学c语言机考改错及解答(含答案)解析.doc
  10. php开发_图片验证码
  11. python学了真的很有用吗-会Python的人工作不会太差?编程课真的有必要学吗?
  12. 印尼Widya Robotics携手华为云,让建筑工地安全看得见
  13. 一文带你搞懂Python中的文件操作
  14. Qt隐式共享detach函数的理解
  15. 洗地机什么牌子最好?洗地机品牌排行榜前十名
  16. Unity下Animation资源压缩简析
  17. 一个简单的安居客房屋信息爬虫
  18. 怎么进行固定资产盘点,资产盘点报告如何一键生成
  19. 在清凉客厅,和飞利浦Fidelio B95家庭影院一起感受炙热好声音
  20. 我的世界服务器php插件制作教程,我的世界服务器citizen公民插件使用教程

热门文章

  1. 【stm32开发日志】步进电机、直线模组、丝杆的接线、编程与使用
  2. python加减乘除计算器 eval_Python计算器(模拟eval)
  3. 【Verilog TestBench教程】
  4. 信号检测与估计(1)
  5. CRM----管理软件分析( ERP/CRM/OA)
  6. 有关计算机学的心得体会,关于计算机学习心得体会大全
  7. GIS数据下载资源大全
  8. html5css3背景下雪,HTML5 CSS3下雪奥运五环背景动画特效
  9. Python黑客编程入门教程
  10. [转]coolfire黑客入门教程系列之(七)