gui采集淘宝列表商品[后期有空更新采集各大电商平台]

import requestsfrom pymysql import *from tkinter import *

window = Tk()window.title("淘宝列表商品采集")window.geometry(‘200x180‘)

Label(window, text=‘关键字采集‘).pack()name = StringVar()Entry(window, textvariable=name).pack()

Label(window, text=‘采集起始页‘).pack()to_page = StringVar()Entry(window, textvariable=to_page).pack()

Label(window, text=‘采集结束页‘).pack()w_page = StringVar()Entry(window, textvariable=w_page).pack()

class Taobao(object):    def __init__(self,name, to_page, w_page):

self.url = ‘https://s.taobao.com/search?q=‘+name+‘&s={}‘        self.headers = {‘accept‘:‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8‘,                        ‘accept-encoding‘:‘gzip, deflate, br‘,                        ‘accept-language‘:‘zh-CN,zh;q=0.9‘,                        ‘cache-control‘:‘max-age=0‘,                        ‘upgrade-insecure-requests‘:‘1‘,                        ‘user-agent‘:‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36‘}

self.url_list = [self.url.format(str((i) * 44)) for i in range(to_page, w_page + 1)]

# 请求url    def get_data(self, url):        response = requests.get(url, headers=self.headers, timeout=10)        return response.content.decode()

# 解析数据    def parse_data(self, data):        # 源码数据        # 定义各个字段正则匹配规则        img_urlpat = ‘"pic_url":"(//.*?)"‘        goods_urlpat = ‘"nid":"(.*?)"‘        title_pat = ‘"raw_title":"(.*?)"‘        company_pat = ‘"nick":"(.*?)"‘        price_pat = ‘"view_price":"(.*?)"‘        deal_countpat = ‘"view_sales":"(.*?)"‘        comment_countpat = ‘"comment_count":"(.*?)"‘

# 查找满足匹配规则的内容,并存在列表中        imgL = re.compile(img_urlpat).findall(data)        goodsL = re.compile(goods_urlpat).findall(data)        nameL = re.compile(title_pat).findall(data)        companyL = re.compile(company_pat).findall(data)        priceL = re.compile(price_pat).findall(data)        dealL = re.compile(deal_countpat).findall(data)        commentL = re.compile(comment_countpat).findall(data)

data_list = []        for j in range(len(imgL)):            name = ‘淘宝‘            goods_link = "https://detail.tmall.com/item.htm?id=" + goodsL[j]  # 商品链接            img_link = "http:" + imgL[j]  # 商品图片链接            title = nameL[j]  # 商品名称            company = companyL[j]  # 淘宝店铺名称            price = priceL[j]  # 商品价格            deal_count = dealL[j]  # 商品付款人数            comment_count = commentL[j]  # 商品评论数,会存在为空值的情况            if (comment_count == ""):                comment_count = 0            time = {                ‘name‘: name,                ‘img_link‘: img_link,                ‘goods_link‘: goods_link,                ‘price‘: price,                ‘title‘: title,                ‘company‘: company,                ‘deal_count‘: deal_count,                ‘comment_count‘: comment_count,            }            data_list.append(time)        return data_list

# 保存数据

def save_data(self, data_list):        try:            conn = Connect(host="127.0.0.1", user="root", password="root", database="data_list", port=3306,                           charset="utf8")            cs1 = conn.cursor()            # 执行insert语句,并返回受影响的行数:添加一条数据            for index, data in enumerate(data_list):                count = cs1.execute(                    ‘insert into data(name,goods_link,img_link,title,price,company,deal_count,comment_count) values("%s","%s","%s","%s","%s","%s","%s","%s")‘ % (                        data[‘name‘], data[‘goods_link‘], data[‘img_link‘], data[‘title‘], data[‘price‘],                        data[‘company‘], data[‘deal_count‘], data[‘comment_count‘]))                # 关闭Cursor对象                print(count)            cs1.close()            # 提交之前的操作,此处为insert操作            conn.commit()        except Exception as e:            ‘‘‘吧报错信息写入log日志‘‘‘            with open(‘log.txt‘, ‘a‘) as f:                f.write(repr(e) + ‘\n‘)        finally:            # 关闭Connection对象            conn.close()

def run(self):        # 构建url        # 构建请求头        # 发起请求        for url in self.url_list:            data = self.get_data(url)            # 解析响应,抽取数据            data_list = self.parse_data(data)            #  保存数据            self.save_data(data_list)

def main():    n = str(name.get())    t = int(to_page.get())    w = int(w_page.get())    all = Taobao(n, t, w)    all.run()

if __name__ == ‘__main__‘:    Button(window, text="确定", relief=‘groove‘, width=9, height=1, bd=4, command=main).pack()    window.mainloop()



原文地址:https://www.cnblogs.com/bkylkh/p/8629410.html

时间: 2024-09-30 11:19:00

gui采集淘宝列表商品[后期有空更新采集各大电商平台]的相关文章

极限工坊淘小咖:各大电商平台陆续入驻微信小程序,背后到底隐藏着什么?

微信小程序是一个低门槛的平台,一个巨大流量的平台,一个相对公平的优质平台,随着微信小程序的盈利风口已经开启了,很多电商平台也开始争相入驻小程序,要知道做电商最重要的是流量,背靠着10亿微信用户,附近的店功能,公众号的跳转,几十个微信入口.拼团,优惠券,秒杀等等这些传统电商的营销手段,在小程序都可以做到.那么开发一个小程序后能带来什么价值呢?淘小咖总结以下几点供大家参考.1.央视的连续报道小程序在岗上线的时候就被央视报道,像第一批发布的"小程序"至少有上百个,覆盖了各行各业的领域.而不久

Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容

1,引言 最近一直在看Scrapy 爬虫框架,并尝试使用Scrapy框架写一个可以实现网页信息采集的简单的小程序.尝试过程中遇到了很多小问题,希望大家多多指教. 本文主要介绍如何使用Scrapy结合PhantomJS采集天猫商品内容,文中自定义了一个DOWNLOADER_MIDDLEWARES,用来采集需要加载js的动态网页内容.看了很多介绍DOWNLOADER_MIDDLEWARES资料,总结来说就是使用简单,但会阻塞框架,所以性能方面不佳.一些资料中提到了自定义DOWNLOADER_HAND

淘宝运营中需注意哪些问题_简图电商

淘宝运营中需注意的一些细节 很多人在运营的过程中有一些小小的错误自己却没有发觉到,却在这个陷阱中很难爬起来.下面简图电商给大家介绍的是一些大家在运营过程中常常容易想错的细节,可定能帮助到大家! 1.拍下到支付转化率,是不是越高越好? 现在很多客单价高的行业,都会建立自己店铺的每天咨询未付款客户id的表格,然后会有后续员工跟进催付,以此来提高销售额.所以,贾真做顾问的家具店支付转化率高达以上80%以上,并且引以为傲. 然后,昨天听某知名家具电商的运营分享,因为家具客单价高,做决定往往要夫妻共同拍板

利用nodejs+phantomjs+casperjs采集淘宝商品的价格

因为一些业务需求需要采集淘宝店铺商品的销售价格,但是淘宝详情页面的价格显示是通过js动态调用显示的.所以就没法通过普通的获取页面html然后通过正则或者xpath的方式获取到想到的信息了. 所幸我们现在有了casperjs.这个是一个基于Phantomjs的库,而Phantomjs则是一个服务器端的js api的webkit浏览器.是不是很神奇?真的是.net的以外的世界很神奇,我们要多走去看看. 好了,现在废话不多说,开始切入正题. 首先就是就是几个相关库的安装.安装过程很简单,相关内容大家百

手把手教你写电商爬虫-第四课 淘宝网商品爬虫自动JS渲染

系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取 老规矩,爬之前首先感谢淘宝公布出这么多有价值的数据,才让我们这些爬虫们有东西可以搜集啊,不过淘宝就不用我来安利了 广大剁手党相信睡觉的时候都能把网址打出来吧. 工欲善其事,必先利其器,先上工具: 1.神箭手云爬虫,2.Chrome浏览器 3.Chrome的插件XpathHelper 不知道是干嘛的同学请移步第一课

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 一.前言 大家好,今天我要来讲讲一个比较实用的爬虫工具,抓取淘宝的关键字商品信息,即是: 输入关键字,按照价格等排序,抓取列出的商品信息以及下载图片,并且支持导出为Excel. 如果如下: 看完下面的讲解,Python语言就掌握得差不多,中级水平了,而且这个封装后的工具还是很好用的. 感觉自己萌萌哒~~ 二.原理 大家知道什么叫爬虫,它也叫网络蜘蛛,机器人等,意思就是说自动的程序,可以去抓取使用网络协议传输的内容. 目前来讲爬虫主

UITableView02-访淘宝列表的删除样式

// //  MJViewController.m //  02-UITableView02-访淘宝列表的删除样式 // //  Created by apple on 13-11-30. //  Copyright (c) 2013年 itcast. All rights reserved. // #import "MJViewController.h" #import "Person.h" @interface MJViewController () <U

淘宝APP商品搜索API提取

@TOC 淘宝APP商品搜索API提取 业务部门反馈PC和WAP版的协议有访问频次限制,经测试APP端基本可以满足,因此,今天我们开始提取相应API. 流程 抓包:经过分析得知,此处为搜索相应接口 分别分析请求头及参数,分别封装成类: 请求头 @Data @Builder @NoArgsConstructor @AllArgsConstructor public class TaobaoHttpHeader { @Builder.Default private String utdid = Ra

39、生鲜电商平台-redis缓存在商品中的设计与架构

说明:Java开源生鲜电商平台-redis缓存在商品中的设计与架构. 1. 各种计数,商品维度计数和用户维度计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc),Redis的命令都是原子性的,你可以轻松地利用INCR,DECR等命令来计数. 商品维度计数(喜欢数,评论数,鉴定数,浏览数,etc)  采用Redis 的类型: Hash. 如果你对redis数据类型不太熟悉,可以参考 http://redis.io/topics/data-types-int