淘宝反爬策略:
使用selenium的webdriver模块伪装成浏览器,然后再用
ActionChains模块模拟整个滑动滑块解锁的过程,成功登陆淘宝账号,抓取数据并写入excel。

from selenium import webdriver
from selenium.webdriver import ActionChains
import time
import re
import xlwt
browser = webdriver.Chrome()
browser.get("https://s.taobao.com/search?q=%E5%A6%AE%E7%BB%B4%E9%9B%85")   #q后面是要搜索的产品名称
#输入账号
browser.find_element_by_xpath('//*[@id="fm-login-id"]').send_keys('手机号xxx')
time.sleep(1.5)
#输入密码
browser.find_element_by_xpath('//*[@id="fm-login-password"]').send_keys('密码xxx')
time.sleep(2)
#滑块验证
button = browser.find_element_by_id('nc_1_n1z')
action = ActionChains(browser)
action.click_and_hold(button).perform()
action.reset_actions()
action.move_by_offset(258, 0).perform()
time.sleep(1.5)
#点击登录
browser.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
time.sleep(3)
#获取源代码
data = browser.page_source
# print(data)
#获取总页数
p_pages = '"pager":{"pageSize":.*?"totalPage":(.*?),"currentPage"'
pages = int(re.findall(p_pages,data,re.S)[0])
#获取全部源代码
datas=[]
datas.append(data)
for i in range(2):     #若要抓取全部可以换成pages,这里只抓取前两页browser.find_element_by_xpath('//*[@id="mainsrp-pager"]/div/div/div/ul/li[8]/a').click()time.sleep(5)data = browser.page_sourcedatas.append(data)time.sleep(3)
alldata = ''.join(datas)
#关闭浏览器窗口
browser.quit()
#抓取的内容
n_name='<span class="H">妮维雅</span>(.*?)</a>'
name = re.findall(n_name,alldata,re.S)
p_price = '<div class="row row-2 title">.*?trace-price="(.*?)" trace-pid=.*?">'
price = re.findall(p_price,alldata,re.S)
p_sales = '"view_sales":"(.*?)"'
sales = re.findall(p_sales,alldata,re.S)
p_detail_url='"detail_url":"(.*?)"'
detail_url=re.findall(p_detail_url,alldata,re.S)
data_list_content = []
content=[]
for i in range(len(name)):content = name[i].strip()+','+price[i]+','+sales[i]+','+'http:'+detail_url[i].encode('latin-1').decode('unicode_escape')content =content.split(',')data_list_content.append(content)
print(data_list_content)
#将抓取内容保存至excel
work_book = xlwt.Workbook(encoding='utf-8')    #创建excel表格
sheet = work_book.add_sheet('NWY')             #创建一个sheet
heads = ['name', 'price', 'sales', 'detail_url']             #写入表头
for i in range(len(heads)):sheet.write(0, i, heads[i])
#写入抓取的具体内容
i=1
for content in data_list_content:j=0for cont in content:sheet.write(i, j, cont)j += 1i += 1work_book.save('nwy.xls')

用python抓取淘宝相关产品的价格及销量数据相关推荐

  1. python抓取淘宝商品评论最新版

    python抓取淘宝商品评论最新思路 import json import re from lxml import etree import pandas as pd import time impo ...

  2. 通过python requests第三方库抓取淘宝商品名称和信息价格

    项目名称:淘宝爬虫之抓取商品标题和价格信息 任务背景: 公司要求提取各电商平台的咖啡机的价格信息,在淘宝开放平台找不到合适的API..获取价格就是为了产品定价,和将来打价格战. 实现用到的库:requ ...

  3. Python 抓取淘宝联盟优惠券

    要获取淘宝联盟的数据第一步当然是分析淘宝联盟的 html 啦. 话不多少说,我们开始吧. 首先我们进入淘宝客的主站 https://pub.alimama.com/ 随便点一个进入商品推广页面,如女装 ...

  4. Python抓取淘宝手机销量排行榜

    #!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: W_H_J @license: A ...

  5. python 抓取淘宝价格信息

    接着上一回. 这段程序实现从淘宝主页开始,输入搜索信息(搜索'手表'),确定搜索后,爬取结果前20页所有的价格信息和地区信息(其他信息也可以获取,暂时只获取了这两个),最后用matplotlib绘制了 ...

  6. python抓取淘宝关键字信息

    懒得写字,不要说,就是干. # coding=utf-8 import urllib.request import re from urllib.request import urlopen, url ...

  7. python数据分析实例:python抓取课工厂网站数据和分析

    在线教育网站学习,是很多人利于闲余时间进行充电的一种选择.本篇文章利用python抓取在线教育网站课工场课程页面的数据,进行简要分析. 通过使用requests库对课工场课程列表页进行抓取. 通过Be ...

  8. 用Python爬取淘宝1000多商品,只想为老父亲做点事

    本文来自我们小密圈的一位非常铁杆的粉丝,这位粉丝看我的文章大概有2年多了,非常朴实的一位铁杆,希望大家耐心看完这篇文章! 北靠黄河南靠山,我家住在老潼关. 对,就是那个鸡鸣啼三省(秦晋豫)的陕西东大门 ...

  9. Python爬虫实战(4):抓取淘宝MM照片

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

最新文章

  1. python 逻辑回归
  2. jQuery源码分析-each函数
  3. 138. 兔子与兔子【字符串哈希】
  4. MySQL show binlog events命令查看binlog日志内容
  5. “约见”面试官系列之常见面试题之第一百零二篇之vue-router的两种模式(建议收藏)
  6. netcore权限控制_netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源...
  7. HTML5新增标签 0303
  8. nodeJs利用mongoose模块操作数据
  9. DataSet,DataTable,DateView的关系和用法
  10. 羊哥推荐的Java后端开发书籍
  11. 银河麒麟V10-sp1服务器操作系统桌面环境安装
  12. Halcon:多张图片合并成一张图片
  13. Linux_Oracle_11g_R2_RAC_安装配置详细过程
  14. java实现画笔的画圆与矩形功能_Java实现画线、矩形、椭圆、字符串功能
  15. 赞!走心推荐这几个 BAT 大佬的公众号
  16. Python3的函数的详解
  17. LeetCode报错:Line 1034:Char9
  18. matlab神经网络应用设计,神经网络及其matlab实现
  19. SQL之ignore关键字
  20. ABCD选项的排序方式

热门文章

  1. 在数据库历史上最重要的人物简介
  2. 勤哲excel服务器模板中excel公式失效的解决办法
  3. 免费开源Scada软件 RapidScada学习记录
  4. JavaScript call,apply,bind详解及实现
  5. 使用create-react-appt做一个react的项目搭建
  6. W: 由于文件‘git_2.17.1-1ubuntu0.8.dsc‘无法被用户‘_apt‘访问,已脱离沙盒并提权为根用户来进行下载。 - pkgAcquire::Run (13: 权限不够)
  7. 解忧杂货店(博客系统)的项目测试——黑盒测试
  8. 【嵌入式】初学者一步一步搞懂内存管理
  9. 马云马化腾都不行,今天谁也不能阻止我吹一波马斯克!
  10. 学术论文中的图表一般用什么软件来画?哪个最专业?