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写的Tkinter程序屏幕居中方法
Mar 10 Python
Python中计算三角函数之cos()方法的使用简介
May 15 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
安装Python的教程-Windows
Jul 22 Python
Django与JS交互的示例代码
Aug 23 Python
Android分包MultiDex策略详解
Oct 30 Python
python下10个简单实例代码
Nov 15 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
python的移位操作实现详解
Aug 21 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 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中显示格式化的用户输入
2006/10/09 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
php验证session无效的解决方法
2014/11/04 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
python client使用http post 到server端的代码
2013/02/10 Python
Python实现从url中提取域名的几种方法
2014/09/26 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
用python对oracle进行简单性能测试
2020/12/05 Python
优秀毕业大学生推荐信
2013/11/13 职场文书
中专生的个人自我评价
2013/12/11 职场文书
实习评语
2013/12/16 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
办理护照介绍信
2014/01/16 职场文书
七夕情人节促销方案
2014/06/07 职场文书
给老婆的检讨书
2015/01/27 职场文书
先进个人自荐书
2015/03/06 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js