#!/usr/bin/env python
# -*- coding=utf-8 -*-
__author__ = 'Man Li' 

import os
import re
import sys
import time
import json
import random
import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
import csv

from lxml import etree


from multiprocessing import Process


'''
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
    reload(sys)
    sys.setdefaultencoding(defaultencoding)
'''

#USER_AGENTS 随机头信息
USER_AGENTS = [
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
    "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
    "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
    "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
    "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
    "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
    "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
    "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
    "Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre",
    "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
    "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
]

#构造请求头
HEADER = {
    'User-Agent': random.choice(USER_AGENTS),
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Connection': 'keep-alive',
    'Accept-Encoding': 'gzip, deflate',
}



proxies = {
  "http": "http://119.101.115.209:9999",
  "https": "https://1.192.244.90:9999",
}

#Get网页，返回内容
def get_html( url_path, payload = '', cookies = '',proxies = ''):
	try:
		s = requests.Session()
		r = s.get(
				url_path,#路径
				headers=HEADER,#请求头
				params=payload,#传参 @payload 字典或者json
				cookies=cookies,#cookies
				verify=True,#SSL验证 @verify False忽略;True开启
				proxies=proxies,#代理
				timeout=30)#@timeout 超时单位 秒
		r.raise_for_status()
		#print r.headers#获取响应头
		#print r.cookies#获取cookies
		return r.text
	except ReadTimeout:
 		print('Timeout')
	except ConnectionError:
		print('Connection error')
	except RequestException:
		print('RequestException')



def get_headers( url_path, payload = '', cookies = '',proxies = ''):
    try:
        s = requests.Session()
        r = s.get(
                url_path,#路径
                headers=HEADER,#请求头
                params=payload,#传参 @payload 字典或者json
                cookies=cookies,#cookies
                verify=True,#SSL验证 @verify False忽略;True开启
                proxies=proxies,#代理
                timeout=30)#@timeout 超时单位 秒
        r.raise_for_status()
        #print r.headers#获取响应头
        #print r.cookies#获取cookies
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')

def get_now_Location( url_path, payload = '', cookies = '',proxies = ''):
    try:
        s = requests.Session()
        r = s.get(
                url_path,#路径
                headers=HEADER,#请求头
                params=payload,#传参 @payload 字典或者json
                cookies=cookies,#cookies
                verify=True,#SSL验证 @verify False忽略;True开启
                proxies=proxies,#代理
                timeout=30)#@timeout 超时单位 秒
        r.raise_for_status()
        #print r.headers#获取响应头
        #print r.cookies#获取cookies
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')





#爬虫地址   ：   https://m.yayams.com/index/index/p/1.html



def get_codimg(html):
    datas = etree.HTML(html)
    #print(datas)
    #//*[@id="__next"]/div/div[2]
    info = datas.xpath('//*[@id="goods"]')[0]
    #print(info)
    div_str=etree.tostring(info,encoding="utf8").decode('utf8')
    return div_str



def get_li(html):
    html = str(html)
    reg = r"<li.*?<\/li>"
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data



def get_image(html):
    html = str(html)
    reg = r"src=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data

#data-original
def get_image1(html):
    html = str(html)
    reg = r"data-original=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = r"href=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = r"<img .*?alt=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_span(html):
    html = str(html)
    reg = r'<span>(.*?)<\/span>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data

#销量
def get_xiaoliang(html):
    html = str(html)
    reg = r'销量：(.*?)<\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = r"<a.*?>(.*?)<\/a>"
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data



csv_data_file = "d:/YHJ_tb_1.csv"

n=443
while n<1105:
    
    print("第"+str(n)+"页")

    test1 = "https://m.yayams.com/index/index/p/"+str(n)+".html"
    html_info = get_html(test1)
    #print(get_codimg(html_info))

    all_datas = get_codimg(html_info)
    #print(all_datas)
    datalist = get_li(all_datas)
    #print(datalist)

    print("\n\n\n\n\n\n")


    #https://www.yayams.com/item/index/iid/595794365569.html

    for data1 in datalist:
        print("第"+str(n)+"页")
        print("\n")
        #print(data1)
        img = get_image1(data1)[0]
        print("图片 = "+str(img))
        #print(get_urls(data1))
        href = "https://www.yayams.com"+get_urls(data1)[0]
        print("链接 = "+str(href))
        #print(get_name(data1))
        name = get_name(data1)[0]
        print("名称 = "+str(name))
        span = get_span(data1)
        #print(span)
        jiage = span[0][1:]
        print("价格 = "+str(jiage))
        youhui = span[2]
        print("优惠 = "+str(youhui))
        xiaoliang = get_xiaoliang(data1)[0]
        print("销量 = "+str(xiaoliang))
        title = get_a(data1)
        print(title[1])
        print("\n")

        pingtai = "淘宝"

        input_datas = [pingtai,href,name.replace("\'",""),img,jiage,youhui,xiaoliang,title[1].replace("\'","")]

        with open(csv_data_file, 'a', newline='', encoding='utf-8') as f:
            try:
                csv_write = csv.writer(f,dialect='excel')
                csv_write.writerow(input_datas)
            except:
                print("获取内容编码不标准存在问题")

    n+=1



188ddd258c5961dd31382d428a87f406c8b66898
<mask token>


def get_headers(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_now_Location(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_codimg(html):
    datas = etree.HTML(html)
    info = datas.xpath('//*[@id="goods"]')[0]
    div_str = etree.tostring(info, encoding='utf8').decode('utf8')
    return div_str


<mask token>


def get_image(html):
    html = str(html)
    reg = 'src=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image1(html):
    html = str(html)
    reg = 'data-original=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = 'href=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = '<img .*?alt=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


<mask token>


def get_xiaoliang(html):
    html = str(html)
    reg = '销量：(.*?)<\\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = '<a.*?>(.*?)<\\/a>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


<mask token>

<mask token>


def get_html(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.text
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_headers(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_now_Location(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_codimg(html):
    datas = etree.HTML(html)
    info = datas.xpath('//*[@id="goods"]')[0]
    div_str = etree.tostring(info, encoding='utf8').decode('utf8')
    return div_str


<mask token>


def get_image(html):
    html = str(html)
    reg = 'src=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image1(html):
    html = str(html)
    reg = 'data-original=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = 'href=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = '<img .*?alt=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


<mask token>


def get_xiaoliang(html):
    html = str(html)
    reg = '销量：(.*?)<\\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = '<a.*?>(.*?)<\\/a>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


<mask token>

<mask token>


def get_html(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.text
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_headers(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_now_Location(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_codimg(html):
    datas = etree.HTML(html)
    info = datas.xpath('//*[@id="goods"]')[0]
    div_str = etree.tostring(info, encoding='utf8').decode('utf8')
    return div_str


def get_li(html):
    html = str(html)
    reg = '<li.*?<\\/li>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image(html):
    html = str(html)
    reg = 'src=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image1(html):
    html = str(html)
    reg = 'data-original=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = 'href=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = '<img .*?alt=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_span(html):
    html = str(html)
    reg = '<span>(.*?)<\\/span>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_xiaoliang(html):
    html = str(html)
    reg = '销量：(.*?)<\\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = '<a.*?>(.*?)<\\/a>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


<mask token>

__author__ = 'Man Li'
<mask token>
USER_AGENTS = [
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)'
    , 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)',
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)'
    ,
    'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)'
    ,
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)'
    ,
    'Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6'
    ,
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1'
    ,
    'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0'
    , 'Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5',
    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'
    ,
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20'
    ,
    'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER'
    ,
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)'
    ,
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)'
    ,
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)'
    ,
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)'
    ,
    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)'
    ,
    'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)'
    ,
    'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1'
    ,
    'Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5'
    ,
    'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre'
    ,
    'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0'
    ,
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11'
    ,
    'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10'
    ]
HEADER = {'User-Agent': random.choice(USER_AGENTS), 'Accept':
    'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5', 'Connection': 'keep-alive',
    'Accept-Encoding': 'gzip, deflate'}
proxies = {'http': 'http://119.101.115.209:9999', 'https':
    'https://1.192.244.90:9999'}


def get_html(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.text
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_headers(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_now_Location(url_path, payload='', cookies='', proxies=''):
    try:
        s = requests.Session()
        r = s.get(url_path, headers=HEADER, params=payload, cookies=cookies,
            verify=True, proxies=proxies, timeout=30)
        r.raise_for_status()
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')


def get_codimg(html):
    datas = etree.HTML(html)
    info = datas.xpath('//*[@id="goods"]')[0]
    div_str = etree.tostring(info, encoding='utf8').decode('utf8')
    return div_str


def get_li(html):
    html = str(html)
    reg = '<li.*?<\\/li>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image(html):
    html = str(html)
    reg = 'src=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_image1(html):
    html = str(html)
    reg = 'data-original=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = 'href=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = '<img .*?alt=\\"(.*?)\\"'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_span(html):
    html = str(html)
    reg = '<span>(.*?)<\\/span>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_xiaoliang(html):
    html = str(html)
    reg = '销量：(.*?)<\\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = '<a.*?>(.*?)<\\/a>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


csv_data_file = 'd:/YHJ_tb_1.csv'
n = 443
while n < 1105:
    print('第' + str(n) + '页')
    test1 = 'https://m.yayams.com/index/index/p/' + str(n) + '.html'
    html_info = get_html(test1)
    all_datas = get_codimg(html_info)
    datalist = get_li(all_datas)
    print('\n\n\n\n\n\n')
    for data1 in datalist:
        print('第' + str(n) + '页')
        print('\n')
        img = get_image1(data1)[0]
        print('图片 = ' + str(img))
        href = 'https://www.yayams.com' + get_urls(data1)[0]
        print('链接 = ' + str(href))
        name = get_name(data1)[0]
        print('名称 = ' + str(name))
        span = get_span(data1)
        jiage = span[0][1:]
        print('价格 = ' + str(jiage))
        youhui = span[2]
        print('优惠 = ' + str(youhui))
        xiaoliang = get_xiaoliang(data1)[0]
        print('销量 = ' + str(xiaoliang))
        title = get_a(data1)
        print(title[1])
        print('\n')
        pingtai = '淘宝'
        input_datas = [pingtai, href, name.replace("'", ''), img, jiage,
            youhui, xiaoliang, title[1].replace("'", '')]
        with open(csv_data_file, 'a', newline='', encoding='utf-8') as f:
            try:
                csv_write = csv.writer(f, dialect='excel')
                csv_write.writerow(input_datas)
            except:
                print('获取内容编码不标准存在问题')
    n += 1

#!/usr/bin/env python
# -*- coding=utf-8 -*-
__author__ = 'Man Li' 

import os
import re
import sys
import time
import json
import random
import requests
from requests.exceptions import ReadTimeout, ConnectionError, RequestException
import csv

from lxml import etree


from multiprocessing import Process


'''
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
    reload(sys)
    sys.setdefaultencoding(defaultencoding)
'''

#USER_AGENTS 随机头信息
USER_AGENTS = [
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
    "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
    "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
    "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
    "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
    "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
    "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
    "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
    "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
    "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
    "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)",
    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
    "Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre",
    "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
    "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
]

#构造请求头
HEADER = {
    'User-Agent': random.choice(USER_AGENTS),
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'en-US,en;q=0.5',
    'Connection': 'keep-alive',
    'Accept-Encoding': 'gzip, deflate',
}



proxies = {
  "http": "http://119.101.115.209:9999",
  "https": "https://1.192.244.90:9999",
}

#Get网页，返回内容
def get_html( url_path, payload = '', cookies = '',proxies = ''):
	try:
		s = requests.Session()
		r = s.get(
				url_path,#路径
				headers=HEADER,#请求头
				params=payload,#传参 @payload 字典或者json
				cookies=cookies,#cookies
				verify=True,#SSL验证 @verify False忽略;True开启
				proxies=proxies,#代理
				timeout=30)#@timeout 超时单位 秒
		r.raise_for_status()
		#print r.headers#获取响应头
		#print r.cookies#获取cookies
		return r.text
	except ReadTimeout:
 		print('Timeout')
	except ConnectionError:
		print('Connection error')
	except RequestException:
		print('RequestException')



def get_headers( url_path, payload = '', cookies = '',proxies = ''):
    try:
        s = requests.Session()
        r = s.get(
                url_path,#路径
                headers=HEADER,#请求头
                params=payload,#传参 @payload 字典或者json
                cookies=cookies,#cookies
                verify=True,#SSL验证 @verify False忽略;True开启
                proxies=proxies,#代理
                timeout=30)#@timeout 超时单位 秒
        r.raise_for_status()
        #print r.headers#获取响应头
        #print r.cookies#获取cookies
        return r.headers
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')

def get_now_Location( url_path, payload = '', cookies = '',proxies = ''):
    try:
        s = requests.Session()
        r = s.get(
                url_path,#路径
                headers=HEADER,#请求头
                params=payload,#传参 @payload 字典或者json
                cookies=cookies,#cookies
                verify=True,#SSL验证 @verify False忽略;True开启
                proxies=proxies,#代理
                timeout=30)#@timeout 超时单位 秒
        r.raise_for_status()
        #print r.headers#获取响应头
        #print r.cookies#获取cookies
        return r.url
    except ReadTimeout:
        print('Timeout')
    except ConnectionError:
        print('Connection error')
    except RequestException:
        print('RequestException')





#爬虫地址   ：   https://m.yayams.com/index/index/p/1.html



def get_codimg(html):
    datas = etree.HTML(html)
    #print(datas)
    #//*[@id="__next"]/div/div[2]
    info = datas.xpath('//*[@id="goods"]')[0]
    #print(info)
    div_str=etree.tostring(info,encoding="utf8").decode('utf8')
    return div_str



def get_li(html):
    html = str(html)
    reg = r"<li.*?<\/li>"
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data



def get_image(html):
    html = str(html)
    reg = r"src=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data

#data-original
def get_image1(html):
    html = str(html)
    reg = r"data-original=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_urls(html):
    html = str(html)
    reg = r"href=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_name(html):
    html = str(html)
    reg = r"<img .*?alt=\"(.*?)\""
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_span(html):
    html = str(html)
    reg = r'<span>(.*?)<\/span>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data

#销量
def get_xiaoliang(html):
    html = str(html)
    reg = r'销量：(.*?)<\/div>'
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data


def get_a(html):
    html = str(html)
    reg = r"<a.*?>(.*?)<\/a>"
    reger = re.compile(reg, re.S)
    data = re.findall(reger, html)
    return data



csv_data_file = "d:/YHJ_tb_1.csv"

n=443
while n<1105:
    
    print("第"+str(n)+"页")

    test1 = "https://m.yayams.com/index/index/p/"+str(n)+".html"
    html_info = get_html(test1)
    #print(get_codimg(html_info))

    all_datas = get_codimg(html_info)
    #print(all_datas)
    datalist = get_li(all_datas)
    #print(datalist)

    print("\n\n\n\n\n\n")


    #https://www.yayams.com/item/index/iid/595794365569.html

    for data1 in datalist:
        print("第"+str(n)+"页")
        print("\n")
        #print(data1)
        img = get_image1(data1)[0]
        print("图片 = "+str(img))
        #print(get_urls(data1))
        href = "https://www.yayams.com"+get_urls(data1)[0]
        print("链接 = "+str(href))
        #print(get_name(data1))
        name = get_name(data1)[0]
        print("名称 = "+str(name))
        span = get_span(data1)
        #print(span)
        jiage = span[0][1:]
        print("价格 = "+str(jiage))
        youhui = span[2]
        print("优惠 = "+str(youhui))
        xiaoliang = get_xiaoliang(data1)[0]
        print("销量 = "+str(xiaoliang))
        title = get_a(data1)
        print(title[1])
        print("\n")

        pingtai = "淘宝"

        input_datas = [pingtai,href,name.replace("\'",""),img,jiage,youhui,xiaoliang,title[1].replace("\'","")]

        with open(csv_data_file, 'a', newline='', encoding='utf-8') as f:
            try:
                csv_write = csv.writer(f,dialect='excel')
                csv_write.writerow(input_datas)
            except:
                print("获取内容编码不标准存在问题")

    n+=1


