基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息

文章目录

  • 一、selenium介绍
  • 二、准备工作
    • 1、下载selenium
    • 2、下载chrome浏览器驱动
  • 三、自动化测试
  • 四、爬取名言
  • 五、爬取淘宝商品信息
  • 六、总结
  • 七、参考链接

一、selenium介绍

Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。具有如下特点:

一、多浏览器支持

       可以对多浏览器进行测试,如IE、Firefox、Safari、Chrome、Android手机浏览器等。

二、支持多种语言

      如Java、C#、Python、Ruby、PHP等。

三、支持多种操作系统

     如Windows、Linux、IOS、Android等。

四、开源免费

     官网:http://www.seleniumhg.org/

二、准备工作

1、下载selenium

可以直接用 pip install selenium下载
基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第1张图片

2、下载chrome浏览器驱动

查看chrome的版本
基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第2张图片
在https://npm.taobao.org/mirrors/chromedriver/下载对应的驱动
基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第3张图片

三、自动化测试

  • 测试一下是否安装成功
from selenium import webdriver
driver=webdriver.Chrome('D:\\py\\chromedriver_win32\\chromedriver.exe')
#进入网页
driver.get("https://www.baidu.com/")

可以看到成功运行谷歌浏览器
基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第4张图片

四、爬取名言

from bs4 import BeautifulSoup as bs
from selenium import webdriver
import csv
from selenium.webdriver.chrome.options import Options
driver=webdriver.Chrome('D:\\py\\chromedriver_win32\\chromedriver.exe')
driver.get('http://quotes.toscrape.com/js/')
  • 定义csv表头和文件路径,以及存放内容的列表
#定义csv表头
quote_head=['名言','作者']
#csv文件的路径和名字
quote_path='..\\source\\mingyan_csv.csv'
#存放内容的列表
quote_content=[]

  • 进入开发者模式,定位名言的位置,观察名言的位置

基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第5张图片

  • 爬取信息并存入
def write_csv(csv_head,csv_content,csv_path):
    with open(csv_path, 'w', newline='',encoding='utf-8') as file:
        fileWriter =csv.writer(file)
        fileWriter.writerow(csv_head)
        fileWriter.writerows(csv_content)
        print('爬取信息成功')
        quote=driver.find_elements_by_class_name("quote")
#将要收集的信息放在quote_content里
for i in tqdm(range(len(quote))):    
    quote_text=quote[i].find_element_by_class_name("text")
    quote_author=quote[i].find_element_by_class_name("author")
    temp=[]
    temp.append(quote_text.text)
    temp.append(quote_author.text)
    quote_content.append(temp)
write_csv(quote_head,quote_content,quote_path)


  • 爬取成功

基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第6张图片

五、爬取淘宝商品信息

  • 导入包并进入淘宝首页
from selenium import webdriver
import time
import csv
driver=webdriver.Chrome('D:\\py\\chromedriver_win32\\chromedriver.exe')
driver.get("https://www.taobao.com/")

  • 定义存放爬取信息的路径和存放内容的列表以及爬取数量
#定义存放图书信息的列表
goods_info_list=[]
#爬取200本
goods_num=200
#定义表头
goods_head=['价格','名字','链接']
#csv文件的路径和名字
goods_path='..\\source\\goods.csv'

  • 进入开发者模式,定位搜索框,可以看到搜索框的id为key,获取按钮输入信息
    基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第7张图片
  • 获取输入框并输入信息
#向输入框里输入薯片
p_input = driver.find_element_by_id("key")
p_input.send_keys('薯片')

  • 获取商品价格、名称、链接的函数
#获取商品价格、名称、链接
def get_prince_and_name(goods):
    #直接用css定位元素
    #获取价格
    goods_price=goods.find_element_by_css_selector('div.p-price')
    #获取元素
    goods_name=goods.find_element_by_css_selector('div.p-name')
    #获取链接
    goods_herf=goods.find_element_by_css_selector('div.p-img>a').get_property('href')
    return goods_price,goods_name,goods_herf

  • 定义滑动到页面底部函数,滑动到页面底部会刷出下一页
def  drop_down(web_driver):
    #将滚动条调整至页面底部
    web_driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
  • 定义爬取一页的函数
#获取爬取一页
def crawl_a_page(web_driver,goods_num):
    #获取图书列表
    drop_down(web_driver)
    goods_list=web_driver.find_elements_by_css_selector('div#J_goodsList>ul>li')
    #获取一个图书的价格、名字、链接
    for i in tqdm(range(len(goods_list))):
        goods_num-=1
        goods_price,goods_name,goods_herf=get_prince_and_name(goods_list[i])
        goods=[]
        goods.append(goods_price.text)
        goods.append(goods_name.text)
        goods.append(goods_herf)
        goods_info_list.append(goods)
        if goods_num==0:
            break
    return goods_num

  • 运行结果
    基于chrome浏览器的selenium自动化测试和爬取名言和京东商品信息_第8张图片

六、总结

Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。

七、参考链接

https://blog.csdn.net/wanglian2017/article/details/72843984?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163974182016780269820611%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163974182016780269820611&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-72843984.pc_search_result_cache&utm_term=selenium%E4%BB%8B%E7%BB%8D&spm=1018.2226.3001.4187
https://blog.csdn.net/weixin_44019406/article/details/88681312

你可能感兴趣的:(chrome,selenium,自动化)