python爬虫爬取淘宝商品信息(selenum+phontomjs)


Posted in Python onFebruary 24, 2018

本文实例为大家分享了python爬虫爬取淘宝商品的具体代码,供大家参考,具体内容如下

1、需求目标

进去淘宝页面,搜索耐克关键词,抓取 商品的标题,链接,价格,城市,旺旺号,付款人数,进去第二层,抓取商品的销售量,款号等。

python爬虫爬取淘宝商品信息(selenum+phontomjs)

python爬虫爬取淘宝商品信息(selenum+phontomjs)

python爬虫爬取淘宝商品信息(selenum+phontomjs)

2、结果展示

python爬虫爬取淘宝商品信息(selenum+phontomjs)

3、源代码

# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import time
import pandas as pd
time1=time.time()
from lxml import etree
from selenium import webdriver
#########自动模拟
driver=webdriver.PhantomJS(executable_path='D:/Python27/Scripts/phantomjs.exe')
import re

#################定义列表存储#############
title=[]
price=[]
city=[]
shop_name=[]
num=[]
link=[]
sale=[]
number=[]

#####输入关键词耐克(这里必须用unicode)
keyword="%E8%80%90%E5%85%8B"


for i in range(0,1):

  try:
    print "...............正在抓取第"+str(i)+"页..........................."

    url="https://s.taobao.com/search?q=%E8%80%90%E5%85%8B&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20170710&ie=utf8&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s="+str(i*44)
    driver.get(url)
    time.sleep(5)
    html=driver.page_source

    selector=etree.HTML(html)
    title1=selector.xpath('//div[@class="row row-2 title"]/a')
    for each in title1:
      print each.xpath('string(.)').strip()
      title.append(each.xpath('string(.)').strip())


    price1=selector.xpath('//div[@class="price g_price g_price-highlight"]/strong/text()')
    for each in price1:
      print each
      price.append(each)


    city1=selector.xpath('//div[@class="location"]/text()')
    for each in city1:
      print each
      city.append(each)


    num1=selector.xpath('//div[@class="deal-cnt"]/text()')
    for each in num1:
      print each
      num.append(each)


    shop_name1=selector.xpath('//div[@class="shop"]/a/span[2]/text()')
    for each in shop_name1:
      print each
      shop_name.append(each)


    link1=selector.xpath('//div[@class="row row-2 title"]/a/@href')
    for each in link1:
      kk="https://" + each


      link.append("https://" + each)
      if "https" in each:
        print each

        driver.get(each)
      else:
        print "https://" + each
        driver.get("https://" + each)
      time.sleep(3)
      html2=driver.page_source
      selector2=etree.HTML(html2)

      sale1=selector2.xpath('//*[@id="J_DetailMeta"]/div[1]/div[1]/div/ul/li[1]/div/span[2]/text()')
      for each in sale1:
        print each
        sale.append(each)

      sale2=selector2.xpath('//strong[@id="J_SellCounter"]/text()')
      for each in sale2:
        print each
        sale.append(each)

      if "tmall" in kk:
        number1 = re.findall('<ul id="J_AttrUL">(.*?)</ul>', html2, re.S)
        for each in number1:
          m = re.findall('>*号: (.*?)</li>', str(each).strip(), re.S)
          if len(m) > 0:
            for each1 in m:
              print each1
              number.append(each1)

          else:
            number.append("NULL")

      if "taobao" in kk:
        number2=re.findall('<ul class="attributes-list">(.*?)</ul>',html2,re.S)
        for each in number2:
          h=re.findall('>*号: (.*?)</li>', str(each).strip(), re.S)
          if len(m) > 0:
            for each2 in h:
              print each2
              number.append(each2)

          else:
            number.append("NULL")

      if "click" in kk:
        number.append("NULL")

  except:
    pass


print len(title),len(city),len(price),len(num),len(shop_name),len(link),len(sale),len(number)

# #
# ######数据框
data1=pd.DataFrame({"标题":title,"价格":price,"旺旺":shop_name,"城市":city,"付款人数":num,"链接":link,"销量":sale,"款号":number})
print data1
# 写出excel
writer = pd.ExcelWriter(r'C:\\taobao_spider2.xlsx', engine='xlsxwriter', options={'strings_to_urls': False})
data1.to_excel(writer, index=False)
writer.close()

time2 = time.time()
print u'ok,爬虫结束!'
print u'总共耗时:' + str(time2 - time1) + 's'
####关闭浏览器
driver.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python爬虫教程之爬取百度贴吧并下载的示例
Mar 07 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
python运行时间的几种方法
Jun 17 Python
Python日期的加减等操作的示例
Aug 15 Python
Python字符串拼接六种方法介绍
Dec 18 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
Python中super函数用法实例分析
Mar 18 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
python正则表达式爬取猫眼电影top100
Feb 24 #Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 #Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 #Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 #Python
Python 中Pickle库的使用详解
Feb 24 #Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 #Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 #Python
You might like
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
Vue.set()实现数据动态响应的方法
2018/02/07 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
微信小程序在其他页面监听globalData中值的变化
2019/07/15 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python中的错误如何查看
2020/07/08 Python
基于Python实现粒子滤波效果
2020/12/01 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
异常和异常类的概念
2014/09/12 面试题
王老吉广告词
2014/03/20 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
公司庆典欢迎词
2015/01/26 职场文书
财政局个人总结
2015/03/04 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
Python采集股票数据并制作可视化柱状图
2022/04/04 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android