Day2_css选择器与requests模块

本文是Day2的Python学习笔记,主要介绍了CSS的基础知识,包括内联样式表、内部样式表和外部样式表,以及各种选择器的使用:标签选择器、ID选择器、类选择器、群组选择器、后代选择器和子代选择器。此外,还讲解了HTTP协议中的URL格式,并详细阐述了Python的requests库如何发送请求、处理响应,包括设置请求头、获取响应内容、处理乱码、下载图片以及获取多页面数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day2_Python学习笔记

css基础

  1. css负责网页内容的样式和布局(css叫做层叠样式表,简称样式表)
  2. css语法:
"""
语法:
选择器{属性名1:属性值1;属性名2:属性值2;...}

说明:
选择器  -  选中需要设置样式的标签
{}     -   固定写法
属性名  -   用来决定需要设置那个样式
属性值  -   如果是表示数值大小,数字值需要单位,一般是px(像素)

常用属性:color:文字样式(颜色英文单词,rgb(红,绿,篮),#颜色的16进制值)
		font-size:字体大小
		background:背景颜色
		width:设置宽度
		height:设置高度
"""
  1. css代码写在哪儿
    1. 内联样式表 - 将css代码写style标签属性中(这个时候不需要写选择器和大括号)
    2. 内部样式表 - 将css代码写在style标签中(style标签既可以放在head中也可以放在body中)
    3. 外部样式表 - 将css代码写在css文件中,然后在html里面通过link标签导入

css选择器

  1. 标签选择器(元素选择器) - 权重值为1

    直接标签名作为一个选择器,选中整个页面中所有的指令标签
    例如:p{} - 选中所有的p标签,a{} - 选中所有的a标签

  2. id选择器 -权重值为4

    在标签的id属性值前面加#作为一个选择器,选中id属性值是指定值的标签(id是唯一的)
    例如:#p2{} - 选中id值为p2的标签,#a - 选中id属性值为a的标签

  3. 类选择器(class选择器) -权重2
    在标签的class属性值前加.作为选择器,选中class属性值是指定值的所有标签
    例如:.c1{} - 选中class属性值为c1的所有标签;.a{} - 选中class属性值为a的所有标签
    .c1.c2{} - 选中class属性值同时有c1和c2的标签

  4. 群组选择器
    将多个选择器用逗号隔开作为选择器,选中每个独立选择器选中的所有标签.
    例如:p,a{} - 选中所有p标签和所有的a标签
    .c1,p{} - 选中所有class是c1的标签和所有的p标签
    .c1,#p1,#p2{} - 选中所有class是c1,id是p1和id是p2的标签

  5. 后代选择器
    将多个独立选择器用空格隔开作为一个选择器
    例如:p a{} - 选中所有作为p标签的后代的a标签.(选中p标签下面的a标签,a标签是p标签的)
    div #p1 .c1{} - 选中所有div下面id为p1下面class为c1的标签

  6. 子代选择器
    将多个独立选择器用>隔开作为选择器
    例如:p>a - 选中所有作为p标签的子代a标签

  7. 补充:

    div.info{} - 选中class为info的所有div标签
    #p1.c1{} - 选中class为c1且id为p1的所有标签
    div p:nth-child(N) - 选中div里面的第N个p标签

http协议

  1. URL(Uniform Resource Locator)(统一资源定位符)

  2. URL的基本格式 = 协议://主机地址/路径

    如:http://www.1000phone.com/img/logo.png

requests的基本用法

  1. 发送请求,获取响应

    请求地址:url =‘https://movie.douban.com/top250’

    请求头:headers = {‘User-Agent’: ‘浏览器或者其他的User-Agent值’}

    response = requests.get(url,headers=headers)

  2. 响应

    1. 设置编码方式(乱码才需要去设置,编码方式需要去找对应的charset值)

      response.encoding = ‘编码方式’

    2. 获取状态码

      response.status_code = 值 (值为200+才是正常的)

    3. 获取请求的文本内容(针对url是网页地址)

      response.text

    4. 获取json数据(针对url是二进制地址,比如图片地址,视频地址)

      response.json( )

    5. 获取二进制数据(针对url是二进制文件地址,比如图片地址,视频地址)

      response.content

  3. 获取响应头

    response.headers

图片下载

  1. 网络图片地址

    url = ‘http://img.y80s.tw/upload/img/210209/2aadff8567330c79_b.jpg’

  2. 请求图片数据

    response = requests.get(url)
    if response.status_code == 200:
        f = open('./a.jpg', 'wb')
        f.write(response.content)
        f.close()
    

获取多页面数据

  1. 如果目标网站以多页的方式来提供数据,爬虫的时候先找不同页面的url之间的规律
import requests
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}
def get_top250(url):
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        print(response.text)
    else:
        print(response.status_code)
    print('======================================')
    return
if __name__ == '__main__':
    for start in range(0, 226, 25):
        url = f'https://movie.douban.com/top250?start={start}&filter='
        get_top250(url)

设置cookie值

import requests
url = 'http://www.zhihu.com'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36',
    'cookie': '登录后网页都cookie值!'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
    print(response.text)
else:
    print('请求失败!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值