这里爬取的是某宝店铺的商品,获取的是框框里面的信息(百丽的信息)
价格
累计评价
销量
活动
名称
连接

运行方式:
1。会自动弹出一个浏览器,打开淘宝
2。然后会弹出一个登入界面(手机扫描登入),输入账号会有验证,扫描快一些。.
3.会自动的选择店铺(店铺有时会没点击,没点击的话要返回手动点击店铺输入店铺名称,然后手动点击搜索),输入店铺名字,然后点击搜索,会打开下面界面

4.然后会自动点击第一个店铺,会在另一个窗口弹出,会自动等待会,然后会自动点击所有宝贝。


5.然后会在第三个界面打开下图,又需要加载数据等待会。

6.等待完了会在第四个窗口打开每个商品的详情,然后自动会爬取里面的数据和第一个图片。
爬取完了会自动关闭第四个窗口,然后跳转到第三个窗口,然后从新打开第四个窗口爬取数据循环。

7.效果图如下:

话不多说,代码如下(只是已百丽为例,其他店铺需要修改下xpath参数就可以)。

import re
import pymysql
import random
from time import sleep
from lxml import etree
from urllib.request import urlretrieve
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECclass TaobaoSpider(object):ask = []# driver_path = r'D:\Python\Python38\Scripts\chromedriver.exe'def __init__(self):self.url = 'https://www.taobao.com/'self.options = webdriver.ChromeOptions()self.options.add_argument("--proxy-server=http://171.35.167.32:9999")   ##设置代理IP# self.driver = webdriver.Chrome(chrome_options=self.options)# self.driver = webdriver.Chrome(executable_path=TaobaoSpider.driver_path)self.driver = webdriver.Chrome()self.baili_url = 'https://ebelle.tmall.com/search.htm?spm=a1z10.1-b-s.w17839663-14900112884.9.44ac5a3dvUsdOH'self.own_baili = 'https://ebelle.tmall.com/search.htm?spm=a1z10.3-b-s.w17839663-14900112884.9.346e3897Pm6zl7'def run(self):wait = WebDriverWait(driver=self.driver,timeout= 20)self.driver.get(self.url)wait.until(EC.presence_of_all_elements_located((By.XPATH,'//div[@class="site-nav-menu-hd"]')))##等待所有元素加载出来self.driver.find_element_by_xpath('//a[@class="h"]').click()   ##点击登入,让后自己扫描登入sleep(10)print('已经登入啦')wait.until(EC.presence_of_all_elements_located((By.XPATH, '//a[@class="site-nav-login-info-nick "]')))##等待所有元素加载出来self.driver.find_element_by_xpath('//*[@class="J_SearchTab shop-search-tab"]').click() ##点击店铺print('已经点了店铺')sleep(2)self.driver.find_element_by_xpath('//*[@id="q"]').send_keys('百丽旗舰店') ##输入百丽旗舰店print('输入了店铺')sleep(2)wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[@id="J_TSearchForm"]/div[1]/button')))##等待页面加载完self.driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()   ##点击搜索wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[@id="list-container"]')))  ##等待页面加载完self.driver.find_element_by_xpath('//*[@id="list-container"]/li[1]/ul/li[1]/a/img').click() ##点击百丽店,然后会弹出第二个框self.driver.switch_to.window(self.driver.window_handles[1])  ###跳转到第二个界面wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[@class="jdb abs a9Odl-P7uf"]')))##等待页面加载完self.driver.find_element_by_xpath('//*[@class="jdb abs a9Odl-P7uf"]').click()  ##点击所有宝贝,然后会跳出第三个窗口self.driver.switch_to.window(self.driver.window_handles[2])  ###跳转到第三个界面sleep(3)source = self.driver.page_sourcelink = etree.HTML(source)sleep(2)htmls = link.xpath('//div[@class="item4line1"]//a[@class="J_TGoldData"]/@href')   #获取连接sleep(2)for html in htmls:          ##详情页面TaobaoSpider.ask.append(html)self.parse_url(html)TaobaoSpider.ask.clear()sleep(random.randint(1,4))def parse_url(self,url):wait =WebDriverWait(driver=self.driver,timeout=1000)self.driver.execute_script("window.open('%s')" % url)  #第4个窗口打开self.driver.switch_to.window(self.driver.window_handles[3])  ###跳转到第4个界面wait.until(EC.presence_of_all_elements_located((By.XPATH,'//*[@id="detail"]')))  ##等待source = self.driver.page_sourceself.jiexi_url(source)self.driver.close()self.driver.switch_to.window(self.driver.window_handles[2])  ##跳转到第三个界面def jiexi_url(self,source):html = etree.HTML(source)self.img_download(html)name = html.xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/div[1]/h1/text()')#产品名price = html.xpath('//*[@id="J_PromoPrice"]/dd/div/span/text()') #价格sale = html.xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/ul/li[1]/div/span[2]/text()')  #月销shaky = html.xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/div[2]/dl[3]/div[1]/dd/text()')  ##活动assess = html.xpath('//*[@id="J_ItemRates"]/div/span[2]/text()')  ##评价content = {'url' : TaobaoSpider.ask,'name': name,'price': price,'sale' : sale,'shaky': shaky,'assess': assess}print(content)sleep(2)def img_download(self,url):img_url = url.xpath('//div[@class="tb-booth"]//img')  ##img标签aa = img_url[0].attrib  ##获取img标签所有属性,这是一个字典的形式name = aa['alt']  # 获取标签中alt的值名字url = aa['src']  # 获取标签中alt的值网页filename = name + '.jpg'urlretrieve(url, filename)if __name__ == '__main__':spider = TaobaoSpider()spider.run()

selenium爬取淘宝店铺数据相关推荐

  1. 使用selenium爬取淘宝店铺信息

    使用selenium +PhantomJS()/Chrome爬取 淘宝页面,存储到mongdb中 使用config进行一些设置 MONGO_URL = 'localhost' MONGO_DB = ' ...

  2. 使用selenium爬取淘宝商品数据,搜索关键词分类(反爬很难?)

    环境准备 博主python为3.8,应该3.x的都没问题下载selenium: pip install selenium 也可以使用清华镜像下载 pip install -i https://pypi ...

  3. 爬虫--selenium爬取淘宝商品数据

    # 导入包 from selenium import webdriver # 连接驱动器,这里用的是谷歌,版本必须对应 driver = webdriver.Chrome(executable_pat ...

  4. selenium爬取淘宝商品基础数据以及商品详情(茶叶数据)

    selenium爬取淘宝商品基础数据以及商品详情 目录 网页分析 确定要爬取的数据 分析网页构成 爬取流程 登入 爬取基础数据以及商品详情 爬取基础数据 爬取商品详情 淘宝滑动验证码 保存EXCEL中 ...

  5. [Python3网络爬虫开发实战] 7-动态渲染页面爬取-4-使用Selenium爬取淘宝商品

    在前一章中,我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过Ajax获取的,但是这些Ajax接口参数比较复杂,可 ...

  6. Python + selenium 爬取淘宝商品列表及商品评论 2021-08-26

    Python + selenium 爬取淘宝商品列表及商品评论[2021-08-26] 主要内容 登录淘宝 获取商品列表 获取评论信息 存入数据库 需要提醒 主要内容 通过python3.8+ sel ...

  7. 使用Selenium爬取淘宝商品(绕过登录页面)

    文章目录 1.准备工作 2.接口分析 3.页面分析 4.获取商品列表 5.解析商品列表 6.保存到MongoDB 7.遍历每页 8.异常处理(绕过登录反爬机制) 方法一:修改ChromeDriver. ...

  8. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

  9. 利用Selenium爬取淘宝商品信息

    文章来源:公众号-智能化IT系统. 一.  Selenium和PhantomJS介绍 Selenium是一个用于Web应用程序测试的工具,Selenium直接运行在浏览器中,就像真正的用户在操作一样. ...

最新文章

  1. 【springmvc+mybatis项目实战】杰信商贸-16.新增从表货物信息
  2. [转载] 民兵葛二蛋——第2集
  3. 安装gitlab并汉化
  4. wan口有流量但电脑上不了网_wan口有ip地址但是上不了网怎么办?
  5. ubuntu drbd双机互备
  6. linux测试at命令,linux at命令:(定时执行脚本)
  7. 背包笔记及Java实现
  8. android app唯一标识符,android 唯一识别码笔记
  9. 2021 年 GitHub 最佳开源软件榜单
  10. Linux面试题附答案
  11. adb配置环境变量没有反应
  12. 用计算机找到自己的另一半,生辰八字算婚期计算器 免费算个人感情婚姻的另一半...
  13. iPhone 屏幕适配尺寸整理
  14. 【小5聊】代码管理工具之git等代码账号使用凭据管理器查看windows凭据
  15. 半加器和全加器的维基百科
  16. 闲鱼转转系统源码+支持跳转APP
  17. matlab曲线拟合 函数 用法以及例子
  18. 王乐畅草书签名怎么写
  19. 优先级队列PriorityQueue
  20. matlab hobject,GUI中更新句柄guidata(hObject,handles)问题!!!

热门文章

  1. 组合数学——Nim取子游戏 太有趣了
  2. 32 回归分析——一元线性回归模型
  3. CRM到底能为企业带来什么?
  4. 【C++入门必看】C++从0到1入门编程
  5. PPT中《此演示文稿中的一些控件无法激活》的解决办法
  6. 使用EasyExcel实现Excel的导入导出
  7. 邮箱手机号正则表达式
  8. 关于vscode安装platformiO
  9. c语言 malloc 函数用法
  10. java文档注释添加url链接和class跳转链接