爬取京东好评率最高的手机

from pyquery import PyQuery as pq
from lxml import etree
import urllib.request
import json
import time
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver= webdriver.Chrome(chrome_options=chrome_options,executable_path='d:\driver\chromedriver.exe')


def getname(i):
    nameurl = 'https://item.jd.com/' + str(i) + '.html'
    r = urllib.request.urlopen(nameurl)
    d = pq(r.read())
    name = d('.sku-name').text()
    return name
def gethaoping(i):
    url = 'https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv56668&productId='+str(i)+'&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1'
    html = urllib.request.urlopen(url).read().decode('gbk')
    jsondata = html[27:-2]
    data = json.loads(jsondata)

    a = data['productCommentSummary']
    return (a['goodRateShow'])

page =1
while True:
    url = "https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&cid2=653&cid3=655&page=" + str(page) + "&s=1&click=0"
    driver.get(url)
    s = "var q=document.documentElement.scrollTop=10000"
    driver.execute_script(s)
    time.sleep(5)
    html = etree.HTML(driver.page_source)
    resurl = html.xpath('//*[@id="J_goodsList"]/ul/li/@data-pid')
    for i in resurl:
        time.sleep(2)
        print(getname(i))
        print("好评率百分"+str(gethaoping(i)))

        price_url = "https://p.3.cn/prices/mgets?skuIds=J_" +str(i)
        response = urllib.request.urlopen(price_url)
        content = response.read()
        result = json.loads(content)
        record = result[0]
        print('最高价格'+record['m'])
        print( '最低价格'+record['op'])
        print('如今价格'+record['p'])
        if gethaoping(i) ==100:
            with open("100%.txt","a+") as fil:
                fil.write("好评率"+str(gethaoping(i))+"\n"+getname(i)+"\n"+'最高价格'+record['m']+"\n"+'最低价格'+record['op']+"\n"+'最低价格'+record['p']+"\n"+"------------------------------------")

        print("----------------------------------------------------")

    driver.find_element_by_class_name("pn-next").click()
    print(driver.current_url)


---------------------------------------------------------------------------------------------
实现翻页  百分百好评的另做记录
【新年货】荣耀 V10 高配版 6GB+64GB 极光蓝 移动联通电信4G全面屏游戏手机 双卡双待
最高价格9999.00
最低价格2999.00
最低价格2999.00
------------------------------------好评率100
【新年货】华为 HUAWEI Mate 10 4GB+64GB 摩卡金 移动联通电信4G手机 双卡双待
最高价格10000.00
最低价格3899.00
最低价格3899.00
------------------------------------好评率100
【新年货】小米 红米5 Plus 全面屏手机 全网通版 3GB+32GB 黑色 移动联通电信4G手机 双卡双待
最高价格3100.00
最低价格999.00
最低价格999.00
------------------------------------好评率100
【新年货】荣耀 畅玩7X 4GB+128GB 全网通4G全面屏手机 尊享版 铂光金
最高价格99999.00
最低价格1999.00
最低价格1999.00
------------------------------------好评率100
【新年货】华为 HUAWEI Mate 10 Pro 全网通 6GB+64GB 摩卡金 移动联通电信4G手机 双卡双待
最高价格6000.00
最低价格4899.00
最低价格4899.00
------------------------------------好评率100
【新年货】荣耀 畅玩6 2GB+16GB 金色 全网通4G手机 双卡双待
最高价格10000.00
最低价格599.00
最低价格599.00
------------------------------------好评率100
【新年货】荣耀9青春版 全网通 尊享版 4GB+64GB 魅海蓝 移动联通电信4G全面屏手机 双卡双待
最高价格9999.00
最低价格1799.00
最低价格1799.00
------------------------------------好评率100
【新年货】小米 红米5A 全网通版 2GB+16GB 香槟金 移动联通电信4G手机 双卡双待
最高价格5000.00
最低价格599.00
最低价格599.00
------------------------------------好评率100
魅族 魅蓝 S6 全面屏手机 全网通公开版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待
最高价格9999.00
最低价格999.00
最低价格999.00
------------------------------------好评率100
【新年货】华为 HUAWEI nova 2S 全面屏四摄 4GB +64GB 曜石黑 移动联通电信4G手机 双卡双待
最高价格3199.00
最低价格2699.00
最低价格2699.00
------------------------------------好评率100
【新年货】华为 HUAWEI 畅享7S 全面屏双摄 4GB +64GB 金色 移动联通电信4G手机 双卡双待
最高价格2000.00
最低价格1699.00
最低价格1699.00
------------------------------------好评率100
【新年货】OPPO A83 全面屏拍照手机 4GB+32GB 香槟色 全网通 移动联通电信4G 双卡双待手机
最高价格1500.00
最低价格1399.00
最低价格1399.00
相关文章
相关标签/搜索