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