天猫店铺半自动商品详情数据

把东西都记到网上,不然每次换电脑之后都得从头上网找资料。

自动登录没实现,可以手动登录或者换扫码登陆,休息一下那个验证不能解决,学建ip池看看能不能解决。

from selenium import webdriver
import time
import pandas as pd
import re
import datetime
import randomfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver import Chrome,ChromeOptions#设置网页加载模式
desired_capabilities = DesiredCapabilities.CHROME
desired_capabilities["pageLoadStrategy"] = "none"
#修改windows.navigator.webdriver,防机器人识别机制,selenium自动登陆判别机制
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation']) driver = webdriver.Chrome(chrome_options=chrome_options,desired_capabilities=desired_capabilities)#CDP执行JavaScript 代码  重定义windows.navigator.webdriver的值
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
url = 'https://www.taobao.com/'
#driver.implicitly_wait(10)
#打开淘宝
driver.get(url)
#driver.get("https://www.taobao.com/")#获取今日日期
today=datetime.datetime.now()
today=today.strftime('%Y-%m-%d')
#要先手动登录淘宝
url2=input('输入要访问的店铺地址')
driver.get(url2)
#建立空的total_info 储存数据
total_info=pd.DataFrame()
#获得当页“下一页”按钮以上的商品详细数据,目前只获取一页,可以用点击下一页或者拼接url的方式爬多页,加了很多等待所以比较慢
divs = driver.find_elements_by_xpath('//*[@id="J_ShopSearchResult"]/div/div[3]/div')  # 把每个商品按照div分类
nu=0
for i in range(len(divs)): try:divs[i].find_element_by_xpath('./a[1]').textbreakexcept:nu+=1#print(nu)
divs=divs[:nu]     # 取‘下一页’之前的商品
for div in divs:l_divs=div.find_elements_by_xpath('./dl')for l_div in l_divs:#等待时间time.sleep(random.uniform(1.1,2))pic=l_div.find_element_by_xpath(".//img").get_attribute('src')# 图片if pic=='https://assets.alicdn.com/s.gif':js="window.open('%s')"%adddriver.execute_script(js)#等待时间time.sleep(random.uniform(1.1,2))n = driver.window_handlesdriver.switch_to.window (n[1])#等待时间time.sleep(random.uniform(1.1,2))pic=driver.find_element_by_xpath('//*[@id="J_ImgBooth"]').get_attribute('src')# 图片#等待时间time.sleep(random.uniform(1.1,2))driver.close()#等待时间time.sleep(random.uniform(1.1,2))driver.switch_to.window (n[0])info = l_div.find_element_by_xpath(".//img").get_attribute('alt')   # 获取商品信息price = l_div.find_element_by_xpath(".//div[@class='cprice-area']").text + "元"        # 获取商品价格dsrs = l_div.find_element_by_xpath('//*[@id="shopExtra"]/div[1]/a/strong').text   # 获取店铺名称add = l_div.find_element_by_xpath(".//a").get_attribute('href')   # 获取地址try:buyer_nums = l_div.find_element_by_xpath(".//div[@class='sale-area']").text   # 获取商品购买人数td=l_div.find_element_by_xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/div[1]/p').text   # 获取特点 (商品页肯定没有,随便加进去的)cf=l_div.find_element_by_xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/div[1]/p').text   # 材料成分(商品页肯定没有,随便加进去的)except:js="window.open('%s')"%adddriver.execute_script(js)#等待时间time.sleep(random.uniform(1.1,2))n = driver.window_handlesdriver.switch_to.window (n[1])try:driver.find_element_by_xpath('//*[@id="sufei-dialog-close"]').click()except:pass#等待时间time.sleep(random.uniform(1.1,2))driver.set_page_load_timeout(5)try:passexcept TimeoutException:driver.execute_script('window.stop ? window.stop() : document.execCommand("Stop");')scroll=random.uniform(10,2000)js="var q=document.documentElement.scrollTop=%s"%scroll  driver.execute_script(js)try:buyer_nums=driver.find_element_by_xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/ul/li[1]/div/span[2]').text# 销量except:buyer_nums="--"try:td=driver.find_element_by_xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/div[1]/p').text   # 获取特点except:td="--"try:cf_tt=driver.find_elements_by_xpath('//*[@id="J_AttrUL"]/li')cf=cf_tt[-1].text# 材料成分except:cf="--"#等待时间time.sleep(random.uniform(1.1,2))driver.close()#等待时间time.sleep(random.uniform(1.1,2))driver.switch_to.window (n[0])#清除stroage(好像没有,没啥影响就加上了)js2 = 'window.localStorage.clear();'driver.execute_script(js2)date=todayprint(pic,info, price, buyer_nums, dsrs, add, td,cf,date,sep='|')tt=dict(pic=pic,info=info,price=price,buyer_nums=buyer_nums,dsrs=dsrs,add=add,td=td,cf=cf,date=date)total_info=total_info.append(tt,ignore_index=True)js4 = "arguments[0].scrollIntoView();" driver.execute_script(js4, div)  total_info=total_info[["pic","info", "price", "buyer_nums", "dsrs", "add","td","cf","date"]]#  目前导出到g:\TT.xlsx
total_info.to_excel(r'g:\TT.xlsx',index=False ) 

资料来源:
https://blog.csdn.net/qq_35866846/article/details/105712147

天猫店铺半自动商品详情数据相关推荐

  1. 天猫商品详情数据接口,京东商品详情数据接口,品牌商品数据分析,品牌店铺商品数据分析,监控商品价格销量接口代码封装教程

    最近做一个品牌电商公司内部ERP系统分发的采集淘宝.天猫.京东商品详情页API接口的投标工作,集成的接口,其中有一个需求就是监控品牌授权店铺的价格.销量,标题.主图等等,具体需求如下描述:所有授权店铺 ...

  2. 通过封装接口实现淘宝商品详情数据上架京东店铺实现商品搬家上货操作实施代码展示

    ​​业务场景:作为全球最大的 B2C 电子商务平台之一,淘宝平台提供了丰富的商品资源,吸引了大量的全球买家和卖家.为了方便开发者接入淘宝平台,淘宝平台提供了丰富的 API 接口,其中商品详情接口是非常 ...

  3. 淘宝商品采集上架拼多多店铺(无货源数据采集接口,拼多多商品详情数据,淘宝商品详情数据)接口代码对接教程

    淘宝商品采集上架拼多多店铺(无货源数据采集接口,拼多多商品详情数据,淘宝商品详情数据),拼多多商品采集上架至淘宝店铺接口代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx199 ...

  4. 淘宝商品采集上架拼多多店铺(无货源数据采集接口,拼多多商品详情数据,淘宝商品详情数据,京东商品详情数据)接口代码对接教程

    淘宝商品采集上架拼多多店铺(无货源数据采集接口,拼多多商品详情数据,淘宝商品详情数据,京东商品详情数据,1688商品详情数据,抖音商品详情数据)接口代码对接教程如下: 1.公共参数 名称 类型 必须 ...

  5. python-如何爬取天猫店铺的商品信息

    ** python-如何爬取天猫店铺的商品信息 ** 1.本文使用的是python-scrapy 爬取天猫博库图书专营店的数据,登录天猫 获取登录之后的cookie 通过下面两幅图片elements与 ...

  6. 京东商品详情数据接口(APP端,H5端)代码对接教程

    京东商品详情数据接口(APP端,H5端)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String 是 调用key(必须以GET方式拼接在 ...

  7. Python无框架分布式爬虫,爬取范例:拼多多商品详情数据,拼多多商品列表数据

    拼多多是中国领先的社交电商平台之一,是一家以"团购+折扣"为主要运营模式的电商平台.该平台上有海量的商品,对于商家和消费者来说都具有非常大的价值,因此,拼多多商品数据的采集技术非常 ...

  8. 拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程

    拼多多分类ID搜索商品数据分析接口(商品列表数据,商品销量数据,商品详情数据)代码对接教程如下: 1.公共参数 名称 类型 必须 描述(接口代码教程wx19970108018) key String ...

  9. 上货避坑指南 私域上货选品工具 无货源选品上货 采集商品详情数据API分享 详情图 sku信息

    电商开店之后,第一件事就是上货了,上货其实也是有技巧的. 上传商品时我们一定要注意细节,不可忽略一些重要细节,所以商家们在上传商品前,不可忽略是否预售.标题.主图.详情页.保证金.上架时间这几个细节. ...

最新文章

  1. 前端如何查看音频的长度_重学前端基础:如何查看文档对象的所有属性?如何文档查找节点?...
  2. 七大Github机器学习热门项目
  3. iOS WKWebView JS原生交互之JS调用OC(附demo)
  4. 516%增长:微博如何熬过七年之痒?
  5. 笔记·mybatis核心对象和全局配置文件
  6. rocketmq docker集群_【解构云原生】RocketMQ高可用方案调研及On K8S设计展望(下)...
  7. 《Java8实战》笔记(05):使用流
  8. linux没有interface文件,Linux下interface文件修改
  9. OpenCV实战4: HOG+SVM实现行人检测
  10. 推荐14款基于javascript的数据可视化工具
  11. MooFest POJ - 1990
  12. python如何在没有环境的电脑上执行_没安装python的电脑可以运行python写的程序吗 python语言编写的程...
  13. php启动端口修改,PHP_启动服务端口报错
  14. 【Flex】读取本地JSON,然后JSON数据转成XML数据
  15. 开课吧:大数据时代,数据分析的特点是什么?
  16. 决策树算法 (CART分类树)
  17. linux日志分析步骤,Linux系统日志分析的基本教程
  18. 服务器芯片将填补中国空白,3年迭代4次技术,芯片黑马填补国产空白,韩企的垄断被打破...
  19. python中pop什么意思_python里pop是什么意思
  20. 城市轨道交通运营管理属于什么院系_城市轨道交通运营管理专业

热门文章

  1. 漂亮大气的html导航页面,非常大气漂亮的CSS导航栏
  2. Java自定义注解-请求限流/防刷
  3. 寒假刷题13: Anu Has a Function Codeforces Round #618 (Div. 2) C
  4. php.ini 关闭输出缓冲,php 输出缓冲 Output Control用法实例详解
  5. Scratch Blocks自定义组件之「点阵」
  6. 在线支付支付宝(一)之开发者账号申请
  7. “神似充气娃娃”的人形机器人,made in China
  8. 学生身份你可以干什么?
  9. 明瞳智控四月再升级,视图终端上云更便捷
  10. 结束进程导致桌面图标消失