会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134193个问题
Python全系列/第一阶段:AI驱动的Python编程/Python入门(动画版) 23252楼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小米商城</title>
    <link rel="icon" href="image/icon.png">
    <link rel="stylesheet" href="css/test.css">
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <!-- 头部的开始 -->
    <div class="header">
        <a href="#">
            <img src="image/a2a9e6db5e3c5374301827435d8595c6.jpg" alt="">
        </a>
    </div>
    <!-- 头部的结束 -->
    <!-- 导航开始 -->
    <div class="headerNav">
         <!-- 水平居中DIV -->
        <div class="nav">           
            <lu class="nav_ul_left">
                <li><a href="" herf="#">小米商城</a> <span>|</span></li>
                <li><a href="" herf="#">MIUI</a> <span>|</span></li>
                <li><a href="" herf="#">loT</a> <span>|</span></li>
                <li><a href="" herf="#">云服务</a> <span>|</span></li>
                <li><a href="" herf="#">天星数科</a> <span>|</span></li>
                <li><a href="" herf="#">有品</a> <span>|</span></li>
                <li><a href="" herf="#">小爱开放平台</a> <span>|</span></li>
                <li><a href="" herf="#">企业团购</a> <span>|</span></li>
                <li><a href="" herf="#">资质证照</a> <span>|</span></li>
                <li><a href="" herf="#">协议规则</a> <span>|</span></li>
                <li><a href="" herf="#">下载app</a> <span>|</span></li>
                <li><a href="" herf="#">智能生活</a> <span>|</span></li>
                <li><a href="" herf="#">Select Location</a></li>
            </lu>
            <ul class="nav_ul_right">
                <li><a href="" herf="#">登录</a><span>|</span></li>
                <li><a href="" herf="#">注册</a><span>|</span></li>
                <li><a href="" herf="#">消息通知</a></li>
                <li class="cart">
                    <a href="" herf="#">购物车(0)</a>
                    <div class="cart_list">购物车中还没有商品,赶紧选购吧!</div>
                </li>
            </ul>
        </div>
    </div>
    <!-- 导航结束 -->
</body>
</html>
/* 头部css开始 */
.header{
    width: 100%;
    height: 100px;
    /* background-color: red; */
    overflow: hidden;
    /* 父元素定位 */
    position: relative;
}
.header img{    
    height: 100px;
    /* 子元素定位 */
    position: absolute;
    /* 子元素左边距离父元素50% */
    left: 50%;
    /* 子元素向左移50% 这样图片就跟父元素水平居中了*/
    transform: translateX(-50%);
}
/* 头部css结束 */

/* 导航样式开始 */
.headerNav{
    width: 100%;
    height: 40px;
    background-color: #333; 
    line-height: 40px;
    font-size: 12px;
    color: #b0b0b0;
}
/* 水平居中DIV  */
.nav{
    width: 1226px;      
    margin:0 auto;   
}
.nav_ul_left{
    float: left;
}
.nav_ul_right{
    float: right;
}
.nav li{
    float: left;
}
.nav a{
    color: #b0b0b0;
}
.nav span{
    color: #424242;
    margin: 0.3em;
}
/* 导航上所有a标签 */
.nav a:hover{
    color: #fff;
}
/* 购物车 */
.cart{
    width: 120px;
    height: 40px;
    background-color: #424242;
    margin-left: 25px;
    position: relative;
}
/* 购物车背景 */
.cart:hover{
    background-color: #fff;
    /* 鼠标移动到li变成小手 */
    cursor: pointer;    
}
/* 购物车字体 */
.cart:hover>a{   
    color: #ff6700;
    font-weight: 500;
}
/* 购物车下拉内容 */
.cart_list{
    width: 316px;
    height: 0;    
    background-color: #fff;
    color: #424242;
    position: absolute;
    right: 0;
    top: 40px;
    display: none;
    overflow: hidden;
    /* 动画过渡 */
    transition: all 0.3s;
    /* 设置边框 */
    box-shadow: 0 2px 10px rgb(0 0 0 / 15%);
}
.cart:hover>.cart_list{
    height: 100px;
    line-height: 100px;
    display: block;  
    
}
/* 导航样式结束 */

在购物车下拉内容里面动画过渡那里设备了过渡效果没起作用。

WEB前端全系列/第一阶段:HTML5+CSS3模块/CSS3新特性 23253楼
Python全系列/第二阶段:Python 深入与提高/文件处理 23256楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/IDEA的使用和第一个java项目 23257楼
WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 23261楼

from fake_useragent import UserAgent
import re
import requests
from bs4 import BeautifulSoup
from time import sleep

def get_html(url):
    '''
    :param url: 要爬取的地址
    :return: 返回html
    '''
    headers = {"User_Agent": UserAgent().random}
    resp = requests.get(url,headers=headers)

    #status_code   返回状态码
    if resp.status_code == 200:
        resp.encoding='utf-8'
        return resp.text
    else:
        return None

def parse_list(html):
    '''
    :param html: 传递进来有一个电影列表的的html
    :return: 返回一个电影的url
    '''

    soup = BeautifulSoup(html,'lxml')
    a_list = soup.select(".book-img-box > a")
    list_url = []
    for a in a_list:
        list_url.append(a.get('href'))
    # 解决验证CA
    # ssl._create_default_https_context = ssl._create_unverified_context
    list_url = ['https:{}'.format(url)for url in list_url]
    return list_url

def parse_index(html):
    '''
    :param html: 传递一个有电影信息的html
    :return: 已经提取好的电影信息
    '''
    soup = BeautifulSoup(html,'lxml')
    name = soup.find('h1','em')
    book = soup.find_all("a", class_="writer")[0].text
    return {'作者':name,'书名':book}

def main():
    num = int(input("请输入要获取多少页:"))
    for page in range(num):
        url = 'https://www.qidian.com/all?&page={}'.format(page+1)
        list_html = get_html(url)
        list_url = parse_list(list_html)
        for url in list_url:
            info_html = get_html(url)
            move = parse_index(info_html)
            print(move)

if __name__ == '__main__':
    main()


老师,我这个匹配到h1下面的em标签啊,我网上也查了,也用calss匹配过。最后返回要么空,要么是错误的。

image.png


image.png

Python全系列/第十六阶段:Python 爬虫开发/爬虫反反爬- 23262楼

问题:

下载APP部分:为什么在download-list的父元素download(内容为下载APP的li标签)上设置overflow:hidden;将子元素download-list

    (当做download的溢出部分)隐藏后,鼠标悬停在download上,运用display:block; 子元素download-list不显示出来? 

html,body,div,h1,h2,h3,h4,h5,h6,dd,dt,dl,form,label,table,caption,tbody,tfoot,thead,tr,td,th,ul,ol,li,pre
,fieldset,legend,input,textarea,button,blockquote,p{margin:0 ;padding;0;}
ul,ol,li{list-style:none;}
body{text-align: center;}
img,input{vertical-align:middle;}
img{border:none};
a{text-decoration:none;}
/* 黑色导航部分 */
a{
    text-decoration:none;
}
.black-nav{
    width:100%;
    height:40px;
    line-height: 40px;
    background-color:#333;
    color:#b0b0b0;
    font-size:12px;
}
.black-nav>div{
    width:1226px;
    margin:0 auto;
}
/* 导航条左侧无序列表往左浮动,使之位于左边,和右侧的无序列表同设置并行排列*/
.black-nav-left{
    float:left;
}
/* 导航条右侧无序列表往右浮动,无使之位于右边 */
.black-nav-right{
    float:right;
}
/* 左侧无序列表项目往左浮动,使之从左往右水平排列 */
.black-nav-left li{
    float:left;
}
/* 右侧无序列表项目往左浮动,使之从左往右水平排列 */
.black-nav-right li{
    float:left;
}
/* 给无序列表内容|设置样式 */
.black-nav span{
    color:#424242;
    margin:0 .3em;
}
.black-nav a{
    color:#b0b0b0;
}
/* 鼠标悬停在超链接上字体颜色改变 */
.black-nav a:hover{
    color:#fff;
}

/* 购物车部分 */

/* 给内容为购物车的li标签设置样式,相对定位,过渡特性 */
.cart{
    width:120px;
    height:40px;
    line-height:40px;
    text-align:center;
    background-color:#424242;
    margin-left:25px;
    position:relative;
    transition:all 0.3s;
}
/* 鼠标悬停在cart(内容为购物车的li标签)超链接字体颜色变为红色 */
.black-nav-right .cart:hover>a{
    color:red;
}
/* 鼠标悬停在cart上背景颜色变为白色 */
.cart:hover{
    background-color:#fff;
}
/* 给内容为购物车的li标签嵌套一个名为cart-list的div,给其设置样式,绝对定位并隐藏 */
.cart-list{
    width:316px;
    height:78px;
    line-height:78px;
    background-color:#fff;
    color:#424242;
    box-shadow:0 2px 10px rgba(0,0,0,.15);
    position:absolute;
    top:40px;
    right:0;
    display:none;
}
/* 鼠标悬停在内容为购物车的li标签上,嵌套的div(car-list)显示 */
.cart:hover>.cart-list{
    display:block;
}

/* 下载APP处的二维码部分 */

/* 给内容为下载APP的li标签设置相对定位 */
.download{
    position:relative;
    /* 为什么在download-list的父元素download上设置overflow:hidden;将子元素download-list
    (当做download的溢出部分)隐藏后,鼠标悬停在download上,运用display:block; 子元素download-list不显示出来? */
    /* overflow:hidden; */
    /* transition:all 0.2s; */

}
/* 内容为下载APP的li标签嵌套一个名为download-list的div,并对其设置样式,绝对定位 */
.download-list{
    width:124px;
    height:0px;
    background-color:#fff;
    color:#333;
    font-size:14px;
    line-height:14px;
    text-align:center;
    box-shadow:0 1px 5px #aaa;
    position:absolute;
    top:40px;
    left:50%;
    margin-left:-62px;
    /* 将其高度设为0,里面的文字即为溢出部分,将其隐藏 */
    overflow:hidden;
    /* 给高度设置0.3s的过渡 */
    transition:all .3s;
    /* display:none;和下文鼠标悬停在download上使其显示的display:block是本代码中另一种将元素隐藏再显示的方法 */
}
/* 给download-list里的图片设置样式 */
img{
    width:90px;
    height:90px;
    margin:18px auto 12px;
}
/* 鼠标悬停在内容为下载APP的li标签上,其嵌套的download-list高度由0变为148px */
.download:hover>.download-list{
    /* display:block; */
    height:148px;
}
/* 给内容为下载APP的li标签再嵌套一个向上的三角形并设置样式,再隐藏 */
.stri{
    width:0;
    right:0;
    border-bottom:10px solid white;
    border-left:10px solid transparent;
    border-right:10px solid transparent;
    position:absolute;
    bottom:0;
    left:50%;
    transform:translate(-10px,0);
    display:none;
    transition:all 0.3s;
}
/* 鼠标悬停在内容为下载APP的Li标签上,向上的三角形显示,并且有持续时间的过渡 */
.download:hover>.stri{
    display:block;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>小米黑色导航部分</title>
    <link rel="icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/小米黑色导航部分.css">
</head>
<body>
    <div class="black-nav">
        <div>
            <div class="black-nav-left">
                <ul>
                    <li><a href="#">小米商城</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">MIUI</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">loT</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">云服务</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">天星数科</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">有品</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">小爱开放平台</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">企业团购</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">资质证照</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">协议规则</a>
                        <span>|</span>
                    </li>
                    <li class="download"><a href="#">下载APP</a>
                        <!-- 为什么download下嵌套的两个div和span标签的前后顺序不一样解析结果也不一样 -->
                        <div class="download-list">
                            <img src="../images/download.png" alt="">
                            <p>小米商城APP </p>
                        </div>
                        <span>|</span>
                        <div class="stri"></div>
                    </li>
                     <li><a href="#">智能生活</a>
                        <span>|</span>
                    </li>
                    <li><a href="#">SelectLocation</a>
                 
                    </li>
                </ul>
            </div>
            <div class="black-nav-right">
                <ul>
                    <li><a href="">登录</a>
                        <span>|</span>
                    </li>
                    <li><a href="">注册</a>
                        <span>|</span>
                    </li>
                    <li><a href="">消息通知</a>
            
                    </li>
                    <li class="cart"><a href="">购物车(0)</a>
                        <div class="cart-list">购物车中还没有商品,赶紧选购吧!</div>
            
                    </li>
                </ul>
            </div>
        </div>
    </div>   
</body>
</html>



WEB前端全系列/第一阶段:HTML5+CSS3模块/CSS3新特性 23265楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637