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