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中的魔法方法深入理解
Jul 09 Python
Python中字典的基本知识初步介绍
May 21 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
python flask中静态文件的管理方法
Mar 20 Python
django的settings中设置中文支持的实现
Apr 28 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
Opencv实现抠图背景图替换功能
May 21 Python
使用pandas 将DataFrame转化成dict
Dec 10 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 Python
python Timer 类使用介绍
Dec 28 Python
django学习之ajax post传参的2种格式实例
May 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 实现公历日期与农历日期的互转换
2017/09/13 PHP
js window.event对象详尽解析
2009/02/17 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
jquery.validate使用详解
2016/06/02 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
Python实现备份文件实例
2014/09/16 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
python如何实时获取tcpdump输出
2020/09/16 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
医学生自荐信
2013/12/03 职场文书
三个儿子教学反思
2014/02/03 职场文书
小学生元旦广播稿
2014/02/21 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
合作协议书模板
2014/10/10 职场文书
2014年检验员工作总结
2014/11/19 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python