聚水潭

作者: Aedda | 来源:发表于2019-12-04 16:45 被阅读0次
import requests
import json
import xlwt
import datetime
import tkinter
from threading import Thread


def cookies():
    f = open(u'./cookie.csv')
    cookie = f.read()
    return cookie


def header():
    headers = {
        'Host': u'www.erp321.com',
        'Origin': u'http://www.erp321.com',
        'Referer': u'http://www.erp321.com/app/item/skusn/Search.aspx',
        'User-Agent': u'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.25 Safari/537.36',
        'X-Requested-With': u'XMLHttpRequest',
        'Cookie': cookies(),
    }
    return headers


def formdata():
    shipping_space = cw_13.get()
    start_time = sj_13.get()
    end_time = entry2.get()
    formdata_list = []
    if ',' in str(shipping_space):
        for i in str(shipping_space).split(','):
            FormData = {
                u'__VIEWSTATE': u'/wEPDwULLTEwOTk4MzQ4ODNkZHccuYxiuRZVnHXhJOhPnV2OdsXI',
                u'__VIEWSTATEGENERATOR': '96687167',
                'bin': i,
                'SkuIdIptType': 's1, sku_id',
                'id1': '',
                'id2': '',
                's2': '',
                'remark': '',
                'creater': '',
                'created': start_time,
                'created': end_time,
                'type_name': '',
                'type': '',
                '_jt_page_size': 99999,
                '_cbb_creater': '',
                '__CALLBACKID': 'JTable1',
                '__CALLBACKPARAM': json.dumps({"Method": "LoadDataToJSON", "Args": ['1',
                                                                                    u"[{\"k\":\"bin\",\"v\":\"" + i + u"\",\"c\":\"=\"},{\"k\":\"created\",\"v\":\"" + start_time + u"\",\"c\":\">=\",\"t\":\"date\"},{\"k\":\"created\",\"v\":\"" + end_time + u" 23:59:59.998\",\"c\":\"<=\",\"t\":\"date\"}]",
                                                                                    u"{}"]})
            }
            formdata_list.append(FormData)
    else:
        FormData = {
            '__VIEWSTATE': '/wEPDwULLTEwOTk4MzQ4ODNkZHccuYxiuRZVnHXhJOhPnV2OdsXI',
            '__VIEWSTATEGENERATOR': '96687167',
            'bin': shipping_space,
            'SkuIdIptType': 's1, sku_id',
            'id1': '',
            'id2': '',
            's2': '',
            'remark': '',
            'creater': '',
            'created': start_time,
            'created': end_time,
            'type_name': '',
            'type': '',
            '_jt_page_size': 99999,
            '_cbb_creater': '',
            '__CALLBACKID': 'JTable1',
            "__CALLBACKPARAM": json.dumps({"Method": "LoadDataToJSON", "Args": ['1',
                                                                                "[{\"k\":\"bin\",\"v\":\"" + shipping_space + "\",\"c\":\"=\"},{\"k\":\"created\",\"v\":\"" + start_time + "\",\"c\":\">=\",\"t\":\"date\"},{\"k\":\"created\",\"v\":\"" + end_time + " 23:59:59.998\",\"c\":\"<=\",\"t\":\"date\"}]",
                                                                                "{}"]})
        }
        formdata_list.append(FormData)
    return formdata_list


def res_post():
    data_1 = formdata()
    ls_all = []
    if '' != data_1:
        for http in data_1:
            to_url = 'http://www.erp321.com/app/item/skusn/Search.aspx'
            session = requests.session()
            res = session.post(to_url, data=http, headers=header())
            ls = json.loads(json.loads(res.content.decode()[2:])["ReturnValue"])['datas']
            ls_all += ls
    return ls_all


def spider():
    ls_all = res_post()
    for i in ls_all:
        print()
        for value in i.values():
            print(value, end='-')
    print(u'\n本次查询到的记录共有', len(ls_all), u'条')


def to_exc():
    try:
        book = xlwt.Workbook()
        sheet = book.add_sheet(u"作者qq68110923")
        lsttitle = [u"序号", u"唯一码", u"商品编码", u"数量", u"单据编码", u"单据编码2", u"操作", u"备注", u"仓位", u"箱号", u"备注2", u"操作时间",
                    u"操作人"]
        lie_head = 0
        for lst in lsttitle:
            sheet.write(0, lie_head, lst)
            lie_head += 1
        ls = res_post()
        row = 0
        for i in ls:
            row += 1
            list_value = []
            for value in i.values():
                list_value.append(value)
            lie_v = 0
            for value_v in list_value:
                sheet.write(row, lie_v, value_v)
                lie_v += 1
        nowtime = str(datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
        book.save(u'./qq68110923/' + nowtime + u'.xls')
        print(u'导出成功%s条' % len(ls))
    except:
        print(u'出现未知异常')


def do_btn():
    t = Thread(target=spider)
    t.start()


def to_excel():
    t = Thread(target=to_exc)
    t.start()


if __name__ == '__main__':
    window = tkinter.Tk()
    window.title(u'聚水潭仓库爬虫系统')
    window.geometry('260x180')
    zhuangbi = tkinter.Label(window, text=u"作者QQ:68110923")
    zhuangbi.place(x=1, y=10)
    hint = tkinter.Label(window, text=u"仓位不填为null")
    hint.place(x=1, y=30)

    cw_11 = tkinter.Label(window, text=u"仓位:")
    cw_11.place(x=1, y=60)
    cw_12 = tkinter.StringVar()
    cw_12.set("A-1-3")
    cw_13 = tkinter.Entry(window, textvariable=cw_12)
    cw_13.place(x=40, y=60, width=210)

    sj_11 = tkinter.Label(window, text=u"时间:")
    sj_11.place(x=1, y=90)
    sj_12 = tkinter.StringVar()
    sj_12.set("2019-03-01")
    sj_13 = tkinter.Entry(window, textvariable=sj_12)
    sj_13.place(x=40, y=90, width=100)

    tdate = tkinter.StringVar()
    tdate.set(datetime.datetime.now().strftime("%Y-%m-%d"))
    entry2 = tkinter.Entry(window, textvariable=tdate)
    entry2.place(x=150, y=90, width=100)

    button = tkinter.Button(window, text=u"爬取", command=spider)
    button.place(x=60, y=130)

    button = tkinter.Button(window, text=u"导出excel", command=to_excel)
    button.place(x=140, y=130)
    window.mainloop()

相关文章

  • 聚水潭

  • 聚水潭是如何基于AnalyticDB for PostgreSQ

    聚水潭数据仓库业务介绍 上海聚水潭网络科技有限公司成立于2014年。聚水潭创建之初,以电商SaaS ERP切入市场...

  • 水潭

    文/蒋清弦 一方小小的水潭 生于可合抱的树下 也生于我终日必经之路途 我日复一日 年复一年的途经它 见过它所拥的残...

  • 水潭

    请把,水手放在碗里 把,眼光放低 雨后地上积水的区域,雨后 脏兮兮的水潭 但同大海同样倒映天上的鸟和天上的云 梦是...

  • 水潭

    在想一个温柔似水的女人,心甘情愿为她的男人奉献时光。最后一天,她独自行走进深深的水潭。安静如同死水,对待生命...

  • 时间与空间

    ′ 《响水潭的夏天》之 (响水潭的传说) 其实响水潭是以其潭而得名; 响水潭潭面有几百平...

  • 电商产品竞品分析报告(聚水潭&良品铺子)

    一、调研概述 (一)调研产品 聚水潭(Saas-ERP):电商后端信息化解决方案 良品铺子(V2.9.0):电商零...

  • 重水潭

    文/梅映雪 他们来自不同地方 却有着一样的心海 或深,或浅 沉醉诗里行间 他们是一群猎人 扑捉,阳光雨露 高山,大...

  • 碧水潭

    从前,李家官庄有位李员外。家有良田千顷,万贯家财,日子过得富足无忧。 只可惜膝下无子,只有一女。 这小女儿也是中年...

  • 林间水潭

    人的一生就像是沙漠中孤独的旅行,承受着干燥和烈日的痛苦,期待着遇见绿洲时的片刻欢愉。 这是一片树林,在人迹罕至的净...

网友评论

      本文标题:聚水潭

      本文链接:https://www.haomeiwen.com/subject/ccncjctx.html