# coding:utf-8

import json
import redis
import time
import requests
session = requests.session()
import logging.handlers
import pickle
import sys
import re
import datetime
from bs4 import BeautifulSoup
from selenium import webdriver
import os import sys
reload(sys)
sys.setdefaultencoding('utf8') r =redis.Redis(host="123.56.74.190",port=6379,password="ZBHRwlb1608") import platform
sysStr = platform.system()
if sysStr =="Windows":
LOG_FILE_check = 'C:\\log\\wlb\\crawler\\cic.log'
else:
LOG_FILE_check = '/log/wlb/crawler/cic.log' handler = logging.handlers.RotatingFileHandler(LOG_FILE_check, maxBytes=128 * 1024 * 1024,backupCount=10) # 实例化handler 200M 最多十个文件
fmt = '\n' + '%(asctime)s - %(filename)s:%(lineno)s - %(message)s'
formatter = logging.Formatter(fmt) # 实例化formatter
handler.setFormatter(formatter) # 为handler添加formatter
logger = logging.getLogger('check') # 获取名为tst的logger
logger.addHandler(handler) # 为logger添加handler
logger.setLevel(logging.DEBUG) def spider():
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver) # 设置浏览器需要打开的url
url = "https://www.suning.com/"
browser.get(url)
time.sleep(5) browser.find_element_by_id("searchKeywords").send_keys(u'手机')
time.sleep(2) for i in range(1,100):
browser.find_element_by_name("index1_none_search_ss1").click()
browser.find_element_by_id("nextPage").click()
result = browser.page_source
soup = BeautifulSoup(result,'html.parser')
result_ul = soup.find_all('div',attrs={"id":"filter-results"})[0] result_list = result_ul.find_all('div',attrs={"class":"li-bg"})
print len(result_list)
print result_list[1]
# for item in result_list:
# print item
# print "==" * 30
#
# time.sleep(500) for item in result_list: item = str(item).replace('\n','').replace('\r','').replace('\t','')
print "==" * 30 print item
try:
sold_price = re.findall('pricefn="priceCenterShow"><i>¥</i>(.*?)<i>.*?</i></span>',item)[0]
except:
sold_price = re.findall('<i>¥</i>(.*?)<i>.*?</i></span>',item)[0]
try:
item_name = re.findall('<i class=".*?" style=".*?"></i>(.*?)</b></a>',item)[0]
except:
item_name = re.findall('target="_blank" title="(.*?)"><i class=',item)[0] try:
item_url = re.findall('class=".*?" href="(.*?)" name',item)[0]
except:
item_url = re.findall('<a class=".*?" href="(.*?)" id=', item)[0]
try:
item_desc = re.findall('<span><i></i><em>(.*?)</em><b></b></span>',item)[0]
except:
item_desc = re.findall('<em>(.*?)</em>', item)[0] print item_url
print item_name
print sold_price
print item_desc time.sleep(500) spider()

Python 爬虫实例(11)—— 爬虫 苏宁易购的更多相关文章

  1. 分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

    http://blog.51cto.com/xpleaf/2093952 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HB ...

  2. jQuery仿苏宁易购导航

    最近看了些网上的各类导航网站源码,自己学习制作了一个仿苏宁易购的导航栏 jQuery部分代码 $(function(){ $(".CategoryTree>ul>li" ...

  3. Axure RP Pro 7.0苏宁易购式标签切换效果教程

    转:http://jingyan.baidu.com/article/7082dc1c4f0a11e40a89bdac.html 页面标签切换效果,几乎是所有大网站(尤其是电商类网站)标配的交互方式: ...

  4. 华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

    还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线, 让你畅快 ...

  5. 苏宁易购Android架构演进史

    互联网后端架构 https://mp.weixin.qq.com/s/5lDXjMh6ghQNi4E7qQIEEg 互联网后端架构 10月9日 摘要 移动青铜时代(2012-2014) 时代特点: 移 ...

  6. 苏宁易购微信端 全页通过background单图

    w单图,绕开了显示的兼容性. http://res.m.suning.com/project/JoinGo/intro.html http://res.m.suning.com/project/Joi ...

  7. 苏宁易购微信端 wx ios android other 通过js来控制样式

    <!DOCTYPE HTML><html><head><meta charset="UTF-8"><meta name=&qu ...

  8. Python 爬虫实例

    下面是我写的一个简单爬虫实例 1.定义函数读取html网页的源代码 2.从源代码通过正则表达式挑选出自己需要获取的内容 3.序列中的htm依次写到d盘 #!/usr/bin/python import ...

  9. python Cmd实例之网络爬虫应用

    python Cmd实例之网络爬虫应用 标签(空格分隔): python Cmd 爬虫 废话少说,直接上代码 # encoding=utf-8 import os import multiproces ...

随机推荐

  1. 微信小程序 - 自定义tabbar(组件)

    配置项(关于使用组件) index.wxml <!-- tabBar:tabBar配置 activeIndex: 激活页面下标 slots: 多插槽配置(需与页面一致) --> <t ...

  2. Multipathing for Software iSCSI

    see also:http://www.vmware.com/files/pdf/techpaper/vmware-multipathing-configuration-software-iSCSI- ...

  3. QT 截取屏幕的实现

    QPixmap提供了两个函数 grabWidget 和 grabWindow 可以将屏幕上的窗体存成一个 QPixmap 格式的图片,很容易再将 QPixmap 存成文件.函数使用很简单,两行代码就可 ...

  4. Tomcat访问日志浅析 (转)

    来自:http://blog.chinaunix.net/uid-20691565-id-3938220.html Tomcat的访问日志是靠org.apache.catalina.valves.Ac ...

  5. golang 面试

    1) 基础语言描述理解考察https://www.tutorialspoint.com/go/go_interview_questions.htm这里有一栏.全面的问答,并且非常基础也包括golang ...

  6. RHEL7-openldap安装配置二(客户端安装配置)

    LDAP用户登录流程: 当在客户端输入账号登录系统时,系统根据/etc/nsswitch.conf配置文件获取账号查找顺序,然后再根据PAM配置文件调用相关模块,对账号(/etc/passwd)及密码 ...

  7. 十问Android NFC手机上的卡模拟(转)

    1,  问:能否在AndroidNFC手机上实现卡模拟? 答:在技术上可行,但是,对一般开发人员来讲,目前看来仅仅是技术上可行:( 2,  问:具体如何实现呢? 答:有两种方式:一种是基于硬件的,被称 ...

  8. 找不到android-support-v4 包的解决办法

    有时候在开发过程中,总是会遇到一些莫名奇妙的错误,或者在使用fragement和viewpage的时候,就会出现下面这个错误,如果出现找不到android-support-v4 包的时候,可以使用下面 ...

  9. [转]极不和谐的 fork 多线程程序

    极不和谐的 fork 多线程程序 继续前几天的话题.做梦幻西游服务器优化的事情.以往的代码,定期存盘的工作分两个步骤,把 VM 里的动态数据序列化,然后把序列化后的数据写盘.这两个步骤,序列化工作并没 ...

  10. Mac终端查看sqlite3数据库、表数据等(含sqlite可视化工具下载)

    背景: 有时候,我们在用FMDB等库处理iOS数据库时,沙盒里保存的数据库格式为.sqlite3. 那么,我们如何查看这个数据库呢? 其实有两种方法: 1.借助工具 - Sqlite Database ...