类的应用--天猫、苏宁易购数据的自动化爬取和保存--学生系统

本文介绍了如何利用类来实现天猫和苏宁易购数据的自动化爬取,并结合学生系统进行数据管理。通过定义数据类和模块类,实现了数据的添加和功能模块化,特别是利用泛型遍历优化了数据处理过程。
摘要由CSDN通过智能技术生成

天猫数据的自动化爬取

#天猫商品信息
#从selenium中引入webdriver
from selenium import webdriver
import time

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

        self.keyword=keyword
    def start_taobao(self):
        #1.创建firefox浏览器对象
        driver=webdriver.Firefox()
        #2.打开淘宝网址
        driver.get('http://www.tianmao.com')
        #3.通过id找到输入框
        search_input=driver.find_element_by_id('mq')
        #4.输入搜索内容
        search_input.send_keys(self.keyword)
注意:

        #5.通过class找到搜索按钮
        search_btn=driver.find_element_by_css_selector('button[type="submit"]')

        #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,3):
            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)

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

            #for循环遍历列表,取出每一个商品的信息
            for shop in shops:
                #输出查看商品信息
                # print(shop.text)
                file_handle.write(shop.text)
                file_handle.write('\n\n')
            # 找到下一页,点击
            next=driver.find_element_by_class_name('ui-page-next')
            next.click()
        # 3.关闭文件
        # 退出浏览器
        driver.quit()
#输出
# print(__name__)
#__name__值为__main__表示是从当前文件直接运行
#__name__ 值为  当前文件名称 表示别的文件引用执行的
#如果是从当前文件直接运行的,执行以下代码
if __name__=='__main__':
    keyword=input('请输入查询关键词:')
    tm=TianMao(keyword)
    tm.start_taobao()

苏宁易购数据爬取

from selenium import webdriver
import
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值