day05 Selenium的基础使用

工程实训day04

继昨天成功安装Selenium请求库后,今天开始学习其基本的应用。

首先以京东主页地址为例,请求访问京东主页,并获取输入框元素,往其中传递值,导入键盘keys,响应按下enter键的操作达成自动搜索功能。

from selenium import webdriver
# 导入键盘Keys
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
# 检测代码块
try:
    # 隐式等待
    driver.implicitly_wait(10)
    driver.get('https://www.jd.com/')
    # 通过id查找input输入框
    input_tag = driver.find_element_by_id('key')
    # send_keys为当前标签传值
    input_tag.send_keys('公仔')
    # 按键盘回车键
    input_tag.send_keys(Keys.ENTER)
    time.sleep(5)
except Exception as e:
    print(e)
finally:
    driver.close()

如此成功访问京东主页。

紧接,实现查找某一种商品的一页信息,并以文本形式保存下来。

from selenium import webdriver
# 导入键盘Keys
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
# 检测代码块
try:
    # 隐式等待,等待标签加载
    driver.implicitly_wait(10)

    # 往京东主页发送请求
    driver.get('https://www.jd.com/')

    # 通过id查找input输入框
    input_tag = driver.find_element_by_id('key')

    # send_keys为当前标签传值
    input_tag.send_keys('中华字典')

    # 按键盘的回车键
    input_tag.send_keys(Keys.ENTER)

    time.sleep(3)

    '''
    爬取京东商品信息:
        公仔
            名称
            url
            价格
            评价
    '''
    # element 找一个
    # elements 找多个
    # 查找所有的商品列表
    good_list = driver.find_elements_by_class_name('gl-item')
    # print(good_list)

    # 循环遍历每一个商品
    for good in good_list:
        # 通过属性选择器查找商品详情页url
        # url
        good_url = good.find_element_by_css_selector('.p-img a').get_attribute('href')
        print(good_url)

        # 名称
        good_name = good.find_element_by_css_selector('.p-name em').text
        print(good_name)

        # 价格
        good_price = good.find_element_by_class_name('p-price').text
        print(good_price)

        # 评价数
        good_commit = good.find_element_by_class_name('p-commit').text
        print(good_commit)

        str1 = f'''
        url: {good_url}
        名称: {good_name}
        价格: {good_price}
        评价: {good_commit}
        \n
        '''
        # 把商品信息写入文本中
        with open('jd.txt', 'a', encoding='utf-8') as f:
            f.write(str1)

    time.sleep(10)

# 捕获异常
except Exception as e:
    print(e)

# 最后都会把驱动浏览器关闭掉
finally:
    driver.close()

以程序为例可得到jd.txt:

总结来说,今天所学的有很多模糊的地方,用老师的话来说,是用未知学未知,看到大多数函数,虽然见名知义,但其具的使用方法,仍不是很清楚,关于Selenium请求库的使用过程和应用我已基本了解,但仍需不断的自学,仅靠课上所获实在不够。

posted @ 2019-06-28 17:43  WYM98miracle  阅读(120)  评论(0)    收藏  举报