爬取京東好評率最高的手機

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
相關文章
相關標籤/搜索