淘宝信息获取(不保存)

from selenium import webdriver
import time
import re


#  输入关键字 收搜 获取总的页码数 用于后边翻页
def search_product():
    # 元素定位  ——输入框  搜索 按钮
    driver.find_element_by_xpath('//*[@id="q"]').send_keys(kw)  #  xapth定位输入框 填入关键字
    driver.find_element_by_xpath('//*[@id="J_TSearchForm"]/div[1]/button').click()  # 模拟点击
    #  运行 --解决登录问题
    time.sleep(10)
    #  使用手机
    #  解决数据采集时 元素未加载完   拖动进度条
    #  需要翻页 重复使用 封装函数
    #  获取页码总数
    token = driver.find_element_by_xpath('//div[@class="total"]').text
    token = int(re.compile('(\d+)').search(token).group(1))
    return token

#  下拉滑动条
def drop_down():
    '''
     js = 'window.scrollBy(0,8000)'
     driver.execute_script(js)
     time.sleep(3)
    '''
    # js = 'window.scrollBy(0,8000)'
    # driver.execute_script(js)
    # time.sleep(3)
    for x in range(1,11,2):   #  13579
        time.sleep(0.5)
        j = x/10
        js = 'document.documentElement.scrollTop= document.documentElement.scrollHeight * %f'% j
        driver.execute_script(js)

#  获取(提取)数据
def get_product():
    divs = driver.find_elements_by_xpath('//div[@class="items"]/div[@class="item J_MouserOnverReq  "]')
    for div in  divs:
        # 宝贝名字
        name = div.find_element_by_xpath('.//div[@class="row row-2 title"]').text
        # 订单量
        deal = div.find_element_by_xpath('.//div[@class="deal-cnt"]').text
        # 图片链接
        img = div.find_element_by_xpath('//div[@class="pic-box-inner"]/div[@class="pic"]/a/img').get_attribute('src')
        # 价格
        pic = div.find_element_by_xpath('//div[@class="price g_price g_price-highlight"]').text
        # 店铺名称
        ip_name = div.find_element_by_xpath('//a[@class="shopname J_MouseEneterLeave J_ShopInfo"]').text
        mess = {'名称':name,'价格':pic,'订单量':deal,'店铺名称':ip_name,'图片链接':img}
        print(mess)


# 图片的保存,链接已经获取了


#  翻页
def next_page():
    #  避免反爬机制过强  使用 url  来达到翻页效果
    token = search_product()   #  到达第1页
    drop_down()   #   下拉
    get_product()   #  获取商品
    num = 1     #  进入第2页操作
    while num != token:
        driver.get('https://s.taobao.com/search?q={}&s={}'.format(kw,44*num))
        #  智能等待 最后等待时间为 20 s,如果超时 抛出异常
        driver.implicitly_wait(20)
        num += 1
        drop_down()  # 下拉
        get_product()  # 获取商品


#  程序入口
if __name__ == '__main__':
    kw = input("请输入需要查询的商品:")
    driver = webdriver.Chrome()  # 选择谷歌浏览器
    driver.get('https://www.taobao.com/')
    next_page()  # 这个函数里 已经 调用了 关键字点击,下滑条,数据获取 这3个函数
                 #  所以只调用这个即可 达到目的



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值