python功能模块(三)

total_demo.py

from wang_yi_kao_la import WYKL
from class_taobao import TaoBao
from su_ning_yi_gou import SNYG
while 1:
    print('1.网易考拉')
    print('2.苏宁易购')
    print('3.淘宝')
    print('0.退出')
    num=int(input('请输入您的选择:'))
    while num not in range(0,4):
        num=int(input('输入有误,请重输:'))
    if num==1:
        keywords = input('请输入您要查询的商品:')
        wykl = WYKL(keywords)
        wykl.execute()
    elif num==2:
        keyword = input('请输入您要搜索的关键词:')
        snyg = SNYG(keyword)
        snyg.start()
    elif num==3:
        keyword = input('请输入查询关键词:')
        tb = TaoBao(keyword)
        tb.start_taobao()
    else:
        break
网易考拉:wang_yi_kao_la.py

from selenium import webdriver
import time
class WYKL(object):
    def __init__(self,keywords):
        self.keywords=keywords
    def execute(self):
        driver=webdriver.Firefox()
        driver.get('http://www.kaola.com')
        search_input=driver.find_element_by_id('topSearchInput')
        search_input.send_keys(self.keywords)
        time.sleep(2)
        search_btn=driver.find_element_by_id('topSearchBtn')
        search_btn.click()
        file_handle=open('%s.txt'%self.keywords,'w',encoding='utf-8')
        for x in range(1,5):
            time.sleep(1)
            print('正在爬取第%s页数据,请稍后...' % x)
            for x in range(1,11,2):
                time.sleep(1)
                j=x/10
                js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight *%f' % j
                driver.execute_script(js)
            marketprices = driver.find_elements_by_class_name('marketprice')
            cur_price=driver.find_elements_by_class_name('cur')
            titlewrap=driver.find_elements_by_class_name('titlewrap')
            store=driver.find_elements_by_class_name('selfflag')
            for x in range(0,len(marketprices)):
                file_handle.write('%s\n'%titlewrap[x].text)
                # print('%s'%titlewrap[x].text)
                file_handle.write('原价:%s  现价:%s\n' % (marketprices[x].text,cur_price[x].text))
                # print('原价:%s  现价:%s' % (marketprices[x].text,cur_price[x].text))
                file_handle.write('店铺:%s\n'%store[x].text)
                # print('店铺:%s'%store[x].text)
                file_handle.write('*******************************')
                # print('*******************************')

            next_btn=driver.find_element_by_class_name('nextPage')
            next_btn.click()
        # 关闭浏览器
        driver.quit()
        file_handle.close()
# __name__ 值为 __main__ 表示是从当前文件直接运行的
# __name__ 值为 当前文件名称  表示别的文件引用执行的
# 如果是从当前文件直接运行的,执行以下的代码
if __name__ == '__main__':
    keywords=input('请输入您要查询的商品:')
    wykl=WYKL(keywords)
    wykl.execute()
苏宁易购:su_ning_yi_gou.py

from selenium import webdriver
import time
class SNYG(object):
    def __init__(self,keyword):
        self.keyword=keyword
    def start(self):
        driver=webdriver.Firefox()
        driver.get('http://www.suning.com')
        search_input=driver.find_element_by_id('searchKeywords')
        search_input.send_keys(self.keyword)
        time.sleep(2)
        search_btn=driver.find_element_by_id('searchSubmit')
        # search_btn=driver.find_element_by_class_name('search-btn')
        search_btn.click()
        file_handle=open('%s.txt'%self.keyword,'w',encoding='utf-8')
        for x in range(1,5):
            print('正在爬取第%s页数据,请稍后...'%x)
            for x in range(1,11,3):
                time.sleep(1)
                j=x/10
                js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight *%f' % j
                driver.execute_script(js)
            shops=driver.find_elements_by_class_name('res-info')
            for shop in shops:
                file_handle.write(shop.text)
            next_btn=driver.find_element_by_id('nextPage')
            next_btn.click()
        #关闭浏览器
        driver.quit()
        file_handle.close()
# __name__ 值为 __main__ 表示是从当前文件直接运行的
# __name__ 值为 当前文件名称  表示别的文件引用执行的
# 如果是从当前文件直接运行的,执行以下的代码
if __name__ == '__main__':
    keyword=input('请输入您要搜索的关键词:')
    snyg=SNYG(keyword)
    snyg.start()
淘宝:class_taobao.py

# 淘宝商品信息
# 引入selenium中的webdriver
from selenium import webdriver
import time

# 声明一个类
class TaoBao(object):
    # 初始化时,传递要查询的关键词
    def __init__(self, keyword):
        self.keyword = keyword

    def start_taobao(self):
        # 1.创建fireFox浏览器对象
        driver = webdriver.Firefox()
        # 2.打开淘宝网址
        driver.get('http://www.taobao.com')
        # 3.通过id找到输入框
        search_input = driver.find_element_by_id('q')
        # 4.输入搜索的关键词
        search_input.send_keys(self.keyword)
        # 5.通过class找到搜索按钮
        search_btn = driver.find_element_by_class_name('btn-search')
        # 6.点击搜索按钮
        search_btn.click()
        # 休眠2秒
        time.sleep(2)
        # 1.打开文件 encoding=utf-8 指定打开文件的字符编码
        file_handle = open('%s.txt' % self.keyword, 'w', encoding='utf-8')

        for x in range(1, 11):
            print('正在获取第%s页数据,请稍后......' % x)

            # for循环执行5次
            for x in range(1, 11, 2):
                # 休眠1秒
                time.sleep(1)
                # 把x转换小数
                j = x / 10
                # 拼接让浏览器滚动的js代码
                # %f float 类型数据占位符
                js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
                # 执行让浏览器滚动的js代码
                driver.execute_script(js)

            # 查找当前页所有的商品信息,返回的是一个列表
            # 电脑 鼠标 键盘 。。。。。 class_name填写 info-cont
            # 其他 class_name 填写 J_MouserOnverReq
            shops = driver.find_elements_by_class_name('J_MouserOnverReq')
            # 如果没有找到数据,换另外一种方式去找
            if len(shops) == 0:
                shops = driver.find_elements_by_class_name('info-cont')

            # for循环遍历列表,取出每一个商品的信息
            for shop in shops:
                # 2.写入文件商品信息
                file_handle.write(shop.text)
                file_handle.write('\n\n')
            # 找到下一页,点击
            # 找到li标签下一页
            next_li = driver.find_element_by_class_name('next')
            next_li.click()

        # 3.关闭文件
        # 退出浏览器
        driver.quit()

# 输出
print(__name__)
# __name__ 值为 __main__ 表示是从当前文件直接运行的
# __name__ 值为 当前文件名称  表示别的文件引用执行的
# 如果是从当前文件直接运行的,执行以下的代码
if __name__ == '__main__':
    keyword = input('请输入查询关键词:')
    tb = TaoBao(keyword)
    tb.start_taobao()





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值