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之画圈还不简单吗?
Sep 20 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
python抓取最新博客内容并生成Rss
May 17 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
python事件驱动event实现详解
Nov 21 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
Python 数据的累加与统计的示例代码
Aug 03 Python
python使用建议与技巧分享(一)
Aug 17 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
python中的被动信息搜集
Apr 29 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的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
关于php循环跳出的问题
2013/07/01 PHP
php的hash算法介绍
2014/02/13 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
php字符串截取函数用法分析
2014/11/25 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php数据序列化测试实例详解
2017/08/12 PHP
Opacity.js
2007/01/22 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
axios基本入门用法教程
2017/03/25 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
Vue单文件组件基础模板小结
2017/08/10 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
用Python实现一个简单的线程池
2015/04/07 Python
使用python实现rsa算法代码
2016/02/17 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Python聊天室程序(基础版)
2018/04/01 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python多项式回归的实现方法
2019/03/11 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
管理专员自荐信
2014/01/26 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
Python各协议下socket黏包问题原理
2022/04/12 Python