Python 爬蟲實例(11)—— 爬蟲 蘇寧易購


# 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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM