1. # coding:utf-
  2.  
  3. import json
  4. import redis
  5. import time
  6. import requests
  7. session = requests.session()
  8. import logging.handlers
  9. import pickle
  10. import sys
  11. import re
  12. import datetime
  13. from bs4 import BeautifulSoup
  14.  
  15. import sys
  16. reload(sys)
  17. sys.setdefaultencoding('utf8')
  18.  
  19. import datetime
  20. # 生成一年的日期
  21. def dateRange(start, end, step=, format="%Y-%m-%d"):
  22. strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime
  23. days = (strptime(end, format) - strptime(start, format)).days
  24. return [strftime(strptime(start, format) + datetime.timedelta(i), format) for i in xrange(, days, step)]
  25.  
  26. def spider():
  27. from selenium import webdriver
  28. import os
  29. # 引入chromedriver.exe
  30. chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
  31. os.environ["webdriver.chrome.driver"] = chromedriver
  32. browser = webdriver.Chrome(chromedriver)
  33.  
  34. # 设置浏览器需要打开的url
  35. url = "https://www.taobao.com/"
  36. browser.get(url)
  37. time.sleep()
  38.  
  39. browser.find_element_by_id("q").send_keys(u'python')
  40. browser.find_element_by_class_name("btn-search").click()
  41. time.sleep()
  42.  
  43. for i in range(,):
  44. browser.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()
  45. time.sleep()
  46.  
  47. result = browser.page_source
  48.  
  49. result_replace = str(result).replace('\n','').replace('\r','').replace('\t','').replace(' ','')
  50.  
  51. result_replace = re.findall('<divclass="pic-boxJ_MouseEneterLeaveJ_PicBox">(.*?)</div><divclass="ctx-boxJ_MouseEneterLeaveJ_IconMoreNew">(.*?)</div><divclass="rowrow-4g-clearfix">(.*?)</div></div></div>',result_replace)
  52.  
  53. print len(result_replace)
  54.  
  55. for item in result_replace:
  56.  
  57. item_imgurl = re.findall('data-src="(.*?)"alt=',item[])[]
  58. item_name = re.findall('alt="(.*?)"/></a></div><divclass=',item[])[]
  59.  
  60. item_loation = re.findall('<divclass="location">(.*?)</div>',item[])[]
  61.  
  62. company_name = re.findall('</span></span><span>(.*?)</span></a></div><divclass="location">',item[])[]
  63.  
  64. company_price = re.findall('<divclass="priceg_priceg_price-highlight"><span>¥</span><strong>(.*?)</strong></div>',item[])[]
  65.  
  66. purchase_num = re.findall('<divclass="deal-cnt">(.*?)人付款</div>',item[])[]
  67.  
  68. print item_imgurl
  69. print item_name
  70. print item_loation
  71. print company_name
  72.  
  73. print company_price
  74. print purchase_num
  75. print "="*
  76.  
  77. # time.sleep()
  78.  
  79. # 关闭浏览器
  80. # browser.quit()
  81.  
  82. spider()

Python 爬虫实例(9)—— 搜索 爬取 淘宝的更多相关文章

  1. Python爬虫实战四之抓取淘宝MM照片

    原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...

  2. 一次Python爬虫的修改,抓取淘宝MM照片

    这篇文章是2016-3-2写的,时隔一年了,淘宝的验证机制也有了改变.代码不一定有效,保留着作为一种代码学习. 崔大哥这有篇>>小白爬虫第一弹之抓取妹子图 不失为学python爬虫的绝佳教 ...

  3. python3编写网络爬虫16-使用selenium 爬取淘宝商品信息

    一.使用selenium 模拟浏览器操作爬取淘宝商品信息 之前我们已经成功尝试分析Ajax来抓取相关数据,但是并不是所有页面都可以通过分析Ajax来完成抓取.比如,淘宝,它的整个页面数据确实也是通过A ...

  4. python 网路爬虫(二) 爬取淘宝里的手机报价并以价格排序

    今天要写的是之前写过的一个程序,然后把它整理下,巩固下知识点,并对之前的代码进行一些改进. 今天要爬取的是淘宝里的关于手机的报价的信息,并按照自己想要价格来筛选. 要是有什么问题希望大佬能指出我的错误 ...

  5. Python网络爬虫(6)--爬取淘宝模特图片

    经过前面的一些基础学习,我们大致知道了如何爬取并解析一个网页中的信息,这里我们来做一个更有意思的事情,爬取MM图片并保存.网址为https://mm.taobao.com/json/request_t ...

  6. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  7. python爬虫学习(三):使用re库爬取"淘宝商品",并把结果写进txt文件

    第二个例子是使用requests库+re库爬取淘宝搜索商品页面的商品信息 (1)分析网页源码 打开淘宝,输入关键字“python”,然后搜索,显示如下搜索结果 从url连接中可以得到搜索商品的关键字是 ...

  8. 【Python3 爬虫】14_爬取淘宝上的手机图片

    现在我们想要使用爬虫爬取淘宝上的手机图片,那么该如何爬取呢?该做些什么准备工作呢? 首先,我们需要分析网页,先看看网页有哪些规律 打开淘宝网站http://www.taobao.com/ 我们可以看到 ...

  9. 使用Python爬取淘宝两千款套套

    各位同学们,好久没写原创技术文章了,最近有些忙,所以进度很慢,给大家道个歉. 警告:本教程仅用作学习交流,请勿用作商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系猪哥删除! ...

随机推荐

  1. HDU 2196 Computer (树上最长路)【树形DP】

    <题目链接> 题目大意: 输出树上每个点到其它点的最大距离. 解题分析: 下面的做法是将树看成有向图的做法,计算最长路需要考虑几种情况. dp[i][0] : 表示以i为根的子树中的结点与 ...

  2. node.js监听文件变化

    前言 随着前端技术的飞速发展,前端开发也从原始的刀耕火种,向着工程化效率化的方向发展.在各种开发框架之外,打包编译等技术也是层出不穷,开发体验也是越来越好.例如HMR,让我们的更新可以即时可见,告别了 ...

  3. P3810 -三维偏序(陌上花开)cdq-分治

    P3810 [模板]三维偏序(陌上花开) 思路 :按照 1维排序 二维 分治三维树状数组维护 #include<bits/stdc++.h> using namespace std; #d ...

  4. 纯几何题 --- UVA - 11646 Athletics Track

    这一题题目有点坑,注意这句话: 这代表了其圆心就是矩形的中心! 然后就可以推公式: 可知: x = 200/(a+2atan(b/c)*r); r = sqrt(a*a + b*b); 所以有AC代码 ...

  5. Window通过zip安装并启动mariadb

    下载解压后进入bin目录 使用mysql_install_db.exe工具:https://mariadb.com/kb/en/mariadb/mysql_install_dbexe/ 安装完成后,在 ...

  6. Kotlin基础(四)Lambda编程

    Lambda编程 一.Lambda表达式和成员引用 一)Lambda表达式语法 //注意与Java8中的区别 val sum={ x:Int,y:Int -> x+y } println(sum ...

  7. 树形动态规划(树状DP)小结

    树状动态规划定义 之所以这样命名树规,是因为树形DP的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系.利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索的 ...

  8. BZOJ1758[Wc2010]重建计划——分数规划+长链剖分+线段树+二分答案+树形DP

    题目描述 输入 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai, ...

  9. C盘清理(安装Visual Studio 或者Office后)

    安装过Office,可能会存在一个C:\\MSOCache的隐藏目录,如果在D盘安装,这个文件夹可能会在D盘根目录下.该目录为Offices安装组件的目录,理解为安装包即可,如果日后不再修改OFFIC ...

  10. Linux命令第三篇

    作业三: 以操作文件的方式,新建一个用户alex echo "alex:x:1200:1200::/home/alex/:/bin/bash" >> /etc/pass ...