编写一个通讯录网页

1.HTML部分要求有标题栏/操作栏/表格区域/版权区域 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>通讯录网页</title>
        <link rel="stylesheet" type="text/css" href="../css/Contacts_1.3.css">
    </head>
    <body>
        <div class="Title">
            <h1>通讯录</h>
        </div>
        <hr>
        <div class="Button">
            <input type="button" value="添加" class="addTo" onclick="addTo()">
            <input type="button" value="删除" class="Delete" onclick="Delete()">
        </div>
        <div>
            <table>
                <thead>
                    <tr>
                        <th><input type="checkbox" id="ca" onclick="pitchon()"><span name="ss">全选</span></th>
                        <th>姓名</th>
                        <th>电话</th>
                        <th>邮箱</th>
                        <th>QQ号</th>
                        <th>微信</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><input type="checkbox" id="ca" name="cars" onclick="calculatAll()"></td>
                        <td>张三</td>
                        <td>12345678912</td>
                        <td>234567891@qq.com</td>
                        <td>234567891</td>
                        <td>ZS12345678912</td>
                    </tr>
                    <tr>
                        <td><input type="checkbox" id="ca" name="cars" onclick="calculatAll()"></td>
                        <td>李四</td>
                        <td>12345678923</td>
                        <td>3456789120@qq.com</td>
                        <td>3456789120</td>
                        <td>LS12345678923</td>
                    </tr>
                    <tr>
                        <td><input type="checkbox" id="ca" name="cars" onclick="calculatAll()"></td>
                        <td>王二麻子</td> 
                        <td>12345678934</td>
                        <td>2456789135@qq.com</td>
                        <td>2456789135</td>
                        <td>WEMZ12345678934</td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div id="myModal" class="modal">
            <div class="modal-content">
                <span class="close" onclick="closeModal()">&times;</span>
                <h2>添加联系人</h2>
                <form>
                    <label for="name">姓名:</label>
                    <input type="text" id="name" name="name" onkeypress="handleEnterKeyPress(event)"><br><br>
                    <label for="phone">电话:</label>
                    <input type="text" id="phone" name="phone" onkeypress="handleEnterKeyPress(event)"><br><br>
                    <label for="email">邮箱:</label>
                    <input type="text" id="email" name="email" onkeypress="handleEnterKeyPress(event)"><br><br>
                    <label for="qq">QQ号:</label>
                    <input type="text" id="qq" name="qq" onkeypress="handleEnterKeyPress(event)"><br><br>
                    <label for="wechat">微信:</label>
                    <input type="text" id="wechat" name="wechat" onkeypress="handleEnterKeyPress(event)"><br><br>
                    <input type="button" value="确认" onclick="addContact()">
                </form>
            </div>
        </div>
        <div class="copyright">
            <p>作者:天道</p>
            <p>时间:2023-11-10</p>
            <p>版本:通讯录1.3版本</p>
            <p>Copyright ©2023版权所有,侵权必究</p>
        </div>
        <script src="../js/Contacts_1.3.js">    
        </script>
    </body>
</html>

2..CSS部分要求综合使用字体/背景色/渐变/阴影/内外边距/边框/边框弧度等技
术将网页效果做的好看一些

body{
    font-family:'Arial',sans-serif;
    margin: 0;
    padding: 0;
}

.Title{
    background-color: #3498db;
    color:white;
    text-align: center;
}

.Button{
    background-color: #2ecc71;
    padding:10px;
    text-align: center;
}

.addTo{
    background-color: rgb(55, 158, 59);
    border:none;
    color: white;
    padding: 16px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    transition-duration: 0.4s;
    cursor: pointer;
}

.addTo:hover{
    background-color: #4CAF50;
    color:white;
    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24),0 17px 50px 0 rgba(0,0,0,0.19);
}

.Delete{
    background-color:aliceblue;
    background:aliceblue;
    color:#9b1a1a;
    border:none;
    padding:16px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    transition-duration: 0.4s;
    cursor: pointer;
}

.Delete:hover{
    background-color: #222323;
    color: white;
    box-shadow: 0 12px 16px 0 rgba(151, 134, 134, 0.24),0 17px 50px 0 rgba(201, 190, 190, 0.19);
}

table{
    border-collapse: collapse;
    width:100%;
    margin-top: 10px;
}

th, td{
    border:1px solid #ddd;
    padding:10px;
    text-align: left;
}

th{
    background-color: #3498db;
    color:white;
}

tr:nth-child(even){
    background-color: #f9f9f9;
}

.copyright{
    font-size: 14px;
    color:#999;
    text-align: center;
    background-color: #333;
    padding:10px;
}

#ca{
    transform:scale(1.5);
    margin:0;
}

#myModal{
    display:none;
    position:fixed;
    z-index:1;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow:auto;
    background-color:rgba(0,0,0,0.4);
}

.modal-content{
    background-color:#fefefe;
    margin:15% auto;
    padding:20px;
    border:1px solid #888;
    width:50%;
    text-align: center;
}

.close{
    color:#aaa;
    float:right;
    font-size:28px;
    font-weight: bold;
}

.close:hover,
.close:focus{
    color:black;
    text-decoration: none;
    cursor:pointer;
}

3.JS部分要求实现添加通讯录的一条记录,展示通讯录中同学信息,信息至少
含姓名/电话/邮箱/QQ号等

//打开模态框
function addTo(){
    var modal=document.getElementById('myModal');
    modal.style.display="block";
}

//关闭模态框
function closeModal(){
    var modal=document.getElementById('myModal');
    modal.style.display="none";
}

//添加联系人
function addContact(){
    var name=document.getElementById('name').value;
    var phone=document.getElementById('phone').value;
    var email=document.getElementById('email').value;
    var qq=document.getElementById('qq').value;
    var wechat=document.getElementById('wechat').value;

    var table=document.querySelector('table tbody');
    var newRow=table.insertRow(-1);//

    //单元格插入
    var checkboxCell=newRow.insertCell(0);
    var nameCell=newRow.insertCell(1);
    var phoneCell=newRow.insertCell(2);
    var emailCell=newRow.insertCell(3);
    var qqCell=newRow.insertCell(4);
    var wechatCell=newRow.insertCell(5);

    checkboxCell.innerHTML='<input type="checkbox" id="ca" name="cars" onclick="calculatAll()">'
    nameCell.innerHTML=name;
    phoneCell.innerHTML=phone;
    emailCell.innerHTML=email;
    qqCell.innerHTML=qq;
    wechatCell.innerHTML=wechat;

    document.getElementById('name').value='';
    document.getElementById('phone').value='';
    document.getElementById('email').value='';
    document.getElementById('qq').value='';
    document.getElementById('wechat').value='';

    closeModal();

}

//键盘确认事件事件
function handleEnterKeyPress(event){
    if(event.key=='Enter'){
        event.preventDefault();
        addContact();
    }
}

document.getElementById('name').addEventListener('keypress',handleEnterKeyPress);
document.getElementById('phone').addEventListener('keypress',handleEnterKeyPress);
document.getElementById('email').addEventListener('keypress',handleEnterKeyPress);
document.getElementById('qq').addEventListener('keypress',handleEnterKeyPress);
document.getElementById('wechat').addEventListener('keypress',handleEnterKeyPress);

//删除按钮事件
function Delete(){
    var checkboxes = document.querySelectorAll('input[name="cars"]:checked');
    checkboxes.forEach(function(checkbox){
        var row=checkbox.closest("tr");
        row.parentNode.removeChild(row);
    })
}

//全选按钮事件
function pitchon(){
    var check=document.getElementsByName('cars');
    var alc=document.getElementById('ca');
    var txt=document.getElementsByClassName('ss');
    var isd=alc.checked;
    if(isd){
        txt[0]=innerText="取消全选";
    }else{
        txt[0]=innerText="全选";
    }
    for(var i=0;i<check.length;i++){
        check[i].checked=isd;
    }
}

//选中复选框事件
function calculatAll(){
    console.log('复选框已选中!');
}


效果图

### 回答1: 这个任务需要使用爬虫技术,需要用到Python的requests和BeautifulSoup库。以下是代码实现: ```python import requests from bs4 import BeautifulSoup import csv # 请求头部信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 西南财经大学金融学院教师信息页面url url = 'http://www.swufe.edu.cn/s/142/t/161/p/2/list.htm' # 发送请求 response = requests.get(url, headers=headers) # 解析网页 soup = BeautifulSoup(response.text, 'html.parser') table = soup.find('table', class_='list') # 创建csv文件 with open('teachers.csv', 'w', newline='', encoding='utf-8') as csvfile: writer = csv.writer(csvfile) writer.writerow(['老师名字', '个人网页网址', '邮箱']) # 遍历表格中的每一行 for tr in table.tbody.find_all('tr'): td_list = tr.find_all('td') if len(td_list) == 3: name = td_list[0].text.strip() url = td_list[1].a['href'] email = td_list[2].text.strip() writer.writerow([name, url, email]) print('文件生成成功!') ``` 这个代码会在当前目录下生成一个名为`teachers.csv`的csv文件,包含所有教师的姓名、个人网页网址和邮箱。 ### 回答2: 要实现爬取西南财经大学金融学院所有教师信息并生成通讯录文件csv,需要进行以下步骤: 1. 网页分析:首先打开西南财经大学金融学院的官方网站,进入教师信息页面。分析网页结构,了解教师信息是如何展示的,包括姓名、个人网页网址和邮箱。 2. 网页解析:使用Python的网络爬虫框架(如BeautifulSoup、Scrapy)进行网页解析,获取教师信息所在的HTML元素、标签或类名。 3. 数据提取:根据网页解析的结果,通过编写代码提取教师名字、个人网页网址和邮箱等信息。可以使用正则表达式、CSS选择器或XPath等方法提取需要的数据。 4. 数据处理:将提取到的教师信息存储到一个数据结构中,如列表、字典或DataFrame。 5. 文件生成:使用Python的CSV库或pandas库将教师信息存储到CSV文件中。按照要求的格式,创建一个包含'老师名字'、'个人网页网址'和'邮箱'三列的CSV文件。 6. 输出结果:运行代码,爬取并生成通讯录文件csv。确保文件中包含了所有专任教师和行政辅导员老师的姓名、个人网页网址和邮箱。 需要注意的是,爬取网页信息时要遵守法律法规,尊重个人隐私,确保合法合规。在进行网页爬取工作前,最好先了解相关网站的爬虫规则并征得相关授权。 ### 回答3: 为了爬取西南财经大学金融学院所有教师(包括专任教师和行政及辅导员老师)的信息并生成一个通讯录文件csv,需要进行以下步骤: 1. 首先,使用网络爬虫技术获取西南财经大学金融学院的教师信息网页。 2. 在网页中找到包含教师信息的标签或元素,例如表格、列表或特定的类名、id等,以便能够定位到教师信息所在的位置。 3. 遍历网页中的每个教师信息,通过抓取教师姓名、个人网页网址和邮箱等数据,并保存到一个列表中。 4. 将所获取的所有教师信息列表转化为csv文件的格式,并设定适当的列名,例如['老师名字','个人网页网址', '邮箱']。 5. 将生成的csv文件保存至本地磁盘,或者直接下载到本地。 这个过程中需要使用编程语言和相关库来实现,例如Python中常用的requests、BeautifulSoup、urllib等库可以帮助发送网络请求、解析网页和提取所需数据。 使用爬虫技术爬取网页信息应该遵循网络爬虫的道德规范和法律要求,尊重网站的隐私政策,避免对服务器造成过大负担,不用于非法用途。在进行数据抓取时,可以设置合理的请求间隔和慢速爬取,以降低对服务器的负荷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值