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入门指引
Apr 01 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python+微信接口实现运维报警
Aug 27 Python
python并发编程之多进程、多线程、异步和协程详解
Oct 28 Python
Python和C/C++交互的几种方法总结
May 11 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
Python高级property属性用法实例分析
Nov 19 Python
利用python汇总统计多张Excel
Sep 22 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
详解Flask开发技巧之异常处理
Jun 15 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 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
1 Tube Radio
2021/03/02 无线电
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
jQuery中的基本选择器用法学习教程
2016/04/14 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
JavaScript命名空间模式实例详解
2019/06/20 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
Python实现学生成绩管理系统
2020/04/05 Python
python安装sklearn模块的方法详解
2020/11/28 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
建筑文秘专业个人求职信范文
2013/12/28 职场文书
仓库管理专业个人的自我评价
2013/12/30 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
初三班主任寄语大全
2014/04/04 职场文书
特教教师先进事迹
2014/05/21 职场文书
新学期标语
2014/06/30 职场文书
基层党员对照检查材料
2014/08/25 职场文书
员工培训协议书
2014/09/15 职场文书
政风行风整改方案
2014/10/25 职场文书
2014年为民办实事工作总结
2014/12/20 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
优秀教师工作总结2015
2015/07/22 职场文书