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 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
python编写爬虫小程序
May 14 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
基于python实现学生管理系统
Oct 17 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
详解Python 正则表达式模块
Nov 05 Python
python 检查文件mime类型的方法
Dec 08 Python
Ubuntu+python将nii图像保存成png格式
Jul 18 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
查看端口并杀进程python脚本代码
Dec 17 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
Python学习笔记之装饰器
Aug 06 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
解析php addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
python导入时小括号大作用
2017/01/10 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
python conda操作方法
2019/09/11 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
基于K.image_data_format() == 'channels_first' 的理解
2020/06/29 Python
广告学专业毕业生自荐信
2013/09/24 职场文书
就业推荐自我鉴定
2013/10/06 职场文书
模具专业推荐信
2013/10/30 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
大学毕业生自荐书怎么写?
2014/01/06 职场文书
节能宣传周活动总结
2014/05/08 职场文书
师德师风承诺书
2014/05/23 职场文书
个人委托书范文
2015/01/28 职场文书
稽核岗位职责范本
2015/04/13 职场文书
python实现简单聊天功能
2021/07/07 Python
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
详解Python flask的前后端交互
2022/03/31 Python
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python