企业级 Selenium 刷 其他平台 博客访问(学习使用 )

在这里插入图片描述

今天我们来学习一下 Selenium , 来统计 博客的访问量

在这里插入图片描述

Selenium 介绍

在这里插入图片描述

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

安装镜像

Selenium是一个自动化测试框架,用于模拟用户在浏览器中的行为。要在Python中使用Selenium,您需要安装Selenium WebDriver,它是一个控制浏览器的库。

要安装Selenium WebDriver,您需要执行以下步骤:

在浏览器中下载WebDriver二进制文件,例如ChromeDriver,FirefoxDriver等。您可以从以下链接下载WebDriver二进制文件:
ChromeDriver:https://sites.google.com/a/chromium.org/chromedriver/downloads
FirefoxDriver:https://github.com/mozilla/geckodriver/releases

将WebDriver二进制文件复制到您的计算机上的某个目录中,例如/usr/local/bin或C:\Windows。

python

安装Selenium库。您可以使用以下命令在Python中安装Selenium:

pip install selenium

刷新页面 :

扫描二维码关注公众号,回复: 14626546 查看本文章
from selenium import webdriver

# 创建Chrome浏览器驱动
driver = webdriver.Chrome()

# 打开网页
driver.get('http://www.example.com')

# 刷新页面
driver.refresh()

# 关闭浏览器
driver.quit()

java

当然你也可以使用Java来进行访问

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Example {
    
    

    public static void main(String[] args) {
    
    
        // 指定ChromeDriver的位置
        System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");

        // 创建Chrome浏览器驱动
        WebDriver driver = new ChromeDriver();

        // 打开网页
        driver.get("http://www.example.com");

        // 模拟用户操作
        driver.findElement(By.name("q")).sendKeys("selenium");
        driver.findElement(By.name("q")).submit();

        // 关闭浏览器
        driver.quit();
    }
}

哪如果我们要刷新博客访问量该怎么做呢?

在这里插入图片描述

  • Python 版本
import time
from selenium import webdriver

# 创建Chrome浏览器驱动
driver = webdriver.Chrome()

# 打开博客页面
driver.get('http://yourblog.com')

# 等待5秒钟,模拟用户浏览博客
time.sleep(5)

# 刷新页面
driver.refresh()

# 再等待5秒钟
time.sleep(5)

# 关闭浏览器
driver.quit()

在上面的代码中,我们使用了ChromeDriver来启动Chrome浏览器,并打开了博客页面。然后,我们使用time.sleep()方法等待5秒钟,模拟用户停留在页面上。接下来,我们使用refresh()方法刷新页面,再等待5秒钟,以增加博客访问量。最后,我们关闭了浏览器。请注意,这种方式不是一种合法的方法来增加博客访问量,而且可能会违反网站的规定,因此请慎重使用。

  • 如果我们进行了刷新博客的操作,也就是我们只需要加个for 循环就可以反复的 刷新

但是如果我们需要 将刷新的结果保存数据库该如何操作呢 ?

在这里插入图片描述

要使用Selenium刷新页面并增加博客访问量,并将访问量统计数据存储到数据库中,您可以结合使用Selenium和Python中的数据库模块(例如MySQLdb或SQLite3),以及时间模块。以下是一个示例:

`

import time
import datetime
import random
import MySQLdb
from selenium import webdriver

# 创建Chrome浏览器驱动
driver = webdriver.Chrome()

# 打开博客页面
driver.get('http://yourblog.com')

# 等待5秒钟,模拟用户浏览博客
time.sleep(5)

# 刷新页面
driver.refresh()

# 再等待5秒钟
time.sleep(5)

# 获取当前时间和日期
now = datetime.datetime.now()

# 生成随机访问量
visits = random.randint(100, 500)

# 将访问量数据存储到MySQL数据库中
db = MySQLdb.connect(host='localhost', user='root', passwd='password1', db='mydatabase')
cursor = db.cursor()
sql = "INSERT INTO blog_stats (date, visits) VALUES (%s, %s)"
values = (now.strftime('%Y-%m-%d'), visits)
cursor.execute(sql, values)
db.commit()

# 关闭数据库连接
db.close()

# 关闭浏览器
driver.quit()

如果我们还想要刷新完页面之后 在前端展示该怎么做

使用代码

首先需要将结果查出来,然后交给前端就 ok了

  1. 首先,我们需要从MySQL数据库中读取访问量数据,并将其存储在Python列表中:
import MySQLdb

# 连接到MySQL数据库
db = MySQLdb.connect(host='localhost', user='root', passwd='password1', db='mydatabase')
cursor = db.cursor()

# 查询访问量数据
cursor.execute("SELECT date, visits FROM blog_stats")

# 将查询结果存储到Python列表中
data = []
for row in cursor.fetchall():
    data.append({
    
    'date': row[0], 'visits': row[1]})

# 关闭数据库连接
db.close()

在上面的代码中,我们使用Python的MySQLdb模块连接到MySQL数据库,并查询访问量数据。然后,我们使用Python的列表数据结构将查询结果存储起来。

  1. 接下来,我们需要使用一个前端框架将访问量数据呈现在页面上。以下是一个使用React框架的示例代码:
import React, {
    
     useState, useEffect } from 'react';
import axios from 'axios';

function App() {
    
    
  const [data, setData] = useState([]);

  useEffect(() => {
    
    
    async function fetchData() {
    
    
      const result = await axios.get('/api/blog-stats');
      setData(result.data);
    }
    fetchData();
  }, []);

  return (
    <div>
      <h1>Blog Stats</h1>
      <table>
        <thead>
          <tr>
            <th>Date</th>
            <th>Visits</th>
          </tr>
        </thead>
        <tbody>
          {
    
    data.map((item) => (
            <tr key={
    
    item.date}>
              <td>{
    
    item.date}</td>
              <td>{
    
    item.visits}</td>
            </tr>
          ))}
        </tbody>
      </table>
    </div>
  );
}

export default App;

在上面的代码中,我们使用React框架来创建一个React组件,并使用useState钩子和useEffect钩子来管理组件的状态和生命周期。我们使用axios库来发起API请求,并将访问量数据存储在组件的状态中。最后,我们使用JSX语法将访问量数据呈现为一个表格。

  1. 最后,我们需要在后端实现一个API来提供访问量数据。以下是一个使用Flask框架的示例代码:
from flask import Flask, jsonify
import MySQLdb

app = Flask(__name__)

@app.route('/api/blog-stats')
def blog_stats():
    # 连接到MySQL数据库
    db = MySQLdb.connect(host='localhost', user='root', passwd='password1', db='mydatabase')
    cursor = db.cursor()

    # 查询访问量数据
    cursor.execute("SELECT date, visits FROM blog_stats")

    # 将查询结果转换为JSON格式,并返回给客户端
    data = []
    for row in cursor.fetchall():
        data.append({
    
    'date

哪如果使用 Java呢 ?

  1. 使用 Selenium 和 Java 编写程序,自动访问博客并模拟用户行为。您需要使用 Java 中的 Selenium WebDriver 类来实现这个功能,例如使用 WebDriver.get() 方法来访问博客页面。您可以在访问网页后等待一段时间再进行下一个操作,例如使用 Thread.sleep() 方法等待页面加载完毕。

  2. 在访问博客时,您需要模拟用户行为,例如点击页面中的链接或按钮,滚动页面等等。使用 Selenium 的 Action 类可以实现这个功能。例如,使用 Actions.click() 方法来模拟点击操作。

  3. 在程序中使用 Java 的 JDBC 接口来连接数据库。您需要在程序中使用 JDBC 驱动程序,并且提供数据库连接字符串、用户名和密码等信息。

  4. 将博客访问量统计数据存储在数据库中。您可以创建一个表来存储博客页面的 URL、访问次数和最后访问时间等信息。每次访问博客时,程序应该更新相应的记录或插入新的记录。

  5. 使用 React 编写前端页面,从数据库中获取博客访问量统计数据,并在前端展示出来。您可以使用 React 的 UI 组件库来创建图表和表格等可视化控件,以展示访问量统计数据。

  6. 最后,您需要将这个程序部署到一个 Web 服务器上,以便让其他人可以访问。您可以使用 Tomcat 等 Java Web 服务器来部署程序,并将前端页面发布到 Web 服务器上。

猜你喜欢

转载自blog.csdn.net/qq_42897427/article/details/129544021