day2-css和requests

总结:

一. css

1. css基本语法

 1. css语法
 语法:
 选择器{属性名1:属性值1; 属性名2:属性值2; ...}
 
 说明:
 选择器    -   选中需要设置样式的标签
 {}       -   固定写法
 属性名    -   决定需要设置那个样式
 属性值    -   如果是表示数值大小,数字值需要单位,一般是px
 
 常用属性: color: 文字样色(颜色值:颜色英文单词、rgb(红,绿,蓝)、#颜色值的16进制值)
          font-size: 字体大小
          background-color: 背景颜色
          width: 设置宽度
          height: 设置高度
 
 2.css代码写在哪儿
 1)内联样式表 - 将css代码写在标签的style属性中(这个时候不需要写 选择器{})
 2)内部样式表 - 将css代码写在style标签中(style标签既可以放在head中,也可以放在body中)
 3)外部样式表 - 将css代码写在css文件中,然后在html里面通过link标签导入
 -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        
        <!-- 内部样式 -->
        <!-- <style type="text/css">
            p{
                color: rgb(230, 78, 90);
            }
            a{
                color: rgb(23, 200, 178);
            }
        </style> -->
        
        <!-- 外部样式 -->
        <link rel="stylesheet" type="text/css" href="./css/styl1.css"/>
        
    </head>
    <body>
        <!-- <h1>1. 内联样式案例:</h1>
        <p style="color: rgb(0,191,255); font-size: 30px; background-color:     #ADFF2F;">我是段落1</p>
        <a href="">我是超链接1</a> -->
        
        <!-- <h1>2.内部样式案例</h1>
        <p>我是段落1</p>
        <a href="">我是超链接1</a>
        <p>我是段落2</p> -->
        
        <p>我是段落1</p>
        
    </body>
</html>

2. css选择器

<!--
 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标签
 
 
 div.info{}   -  选中class为info的div标签
 #p1.c1{}  -  选中id是p1并且class是c1的标签
 
 p:nth-child(N)  -  选中第N个p标签
 div p:nth-child(N)  -  选中div里面的第N个p标签
 -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            /* =============1.标签选择器============= */
            /* p{
                color: red;
            }
            a{
                color: coral;
                text-decoration: none;  
            } */
            
            /* =============2.id选择器============= */
            /* #p2{
                color: darkcyan;
                font-size: 35px;
            } */
            
            /* =============3.类选择器============= */
            /* .c1{
                color: green;
            }
            .c2{
                background-color: yellow;
            }
            
            .c1.c2{
                font-size: 35px;
            } */
            
            /* =============4.群组选择器============= */
            /* p,a{
                color: darkmagenta;
            } */
            
            
            /* =============5.后代选择器============= */
            /* div div a{
                color: red;
            } */
            
           /* div>a{
                color: red;
            } */
            
           /* div>div a{
              color: red;  
            } */
            
            
            /* p.c1{
                color: red;
            } */
            
            div p:nth-child(2){
                color: red;
            }
        </style>
        
        
    </head>
    <body>
        <p class="c1">我是段落1</p>
        <a href="">我是超链接1</a>
        <div id="">
            <p id="p2">我是段落2</p>
            <font class="c1">我是font1</font>
            <input type="" name="" id="" value="" />
            
            <!-- a标签同时拥有三个class值,分别是c1和c2、c3 -->
            <a class="c1 c2 c3" href="">我是超链接2</a>
            
            <div id="">
               <h2 class="c2">我是标题1</h2> 
               <p>我是段落3</p>
               <a href="">我是超链接3</a>
               <p class="c1">
                   我是段落4
                   <a href="">我是超链接5</a>
               </p>
            </div>
            
        </div>
        
    </body>
</html>

二. requests的使用

1. requests的基本用法

import requests

# 1.发送请求,获取响应
# 请求地址
url = 'https://movie.douban.com/top250'
# 请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}

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

# 2.响应内容
# 1)设置编码方式(乱码的时候才来设置)
# response.encoding = '编码方式'

# 2)获取状态码
# print(response.status_code)

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

# 4) 获取json数据(针对url返回的数据是json的时候)
# print(response.json())

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

# 3.响应头
# print(response.headers)

2. 图片下载

import requests

# 图片的网络地址
url = 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1810171082,1266198879&fm=26&gp=0.jpg'

# 请求图片数据
response = requests.get(url)

# 保存图片数据
if response.status_code == 200:
    f = open('./a.jpg', 'wb')
    f.write(response.content)
    f.close()

3. 多页面数据

# 如果目标网站以多页的方式来提供数据,爬虫的时候先找不同页面的url之间的规律

import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}


def get_top250(url):
    response = requests.get(url, headers=headers)
    if response.status_code != 200:
        print('请求失败:', response)
        return
    print(response.text)
    print('=============================================================')


if __name__ == '__main__':
    for start in range(0, 226, 25):
        url = f'https://movie.douban.com/top250?start={start}&filter='
        get_top250(url)

4. 设置cookie

import requests

url = 'https://www.zhihu.com/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
    'cookie': '_zap=39beb782-a6cf-4483-8719-8e2d846da00d; _xsrf=zMuRHL0ug0AKhKYfxromKD0K2pb49WzV; d_c0="AMDePoka3xKPToqc24ryAdbkUVa-BnMNCLc=|1616989878"; __snaker__id=tuq6EBkbDlGyqzju; _9755xjdesxxd_=32; YD00517437729195%3AWM_TID=Lftr4M6kyApFUEUBFFcv0DqgQ5uBSC%2FF; q_c1=3aefdfd6a282410fb765b6e79ad0bbea|1617027299000|1617027299000; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1621528669; captcha_session_v2="2|1:0|10:1621932463|18:captcha_session_v2|88:cVlHd3N2c2hjQStsNUxZRkN6Tm9FaDZyVFpwSUlmUXF6U0s4dGRsZi9XZWViRlpHbEc4WUsyQ1lzbGdWS3lTWg==|d3cb1e6f1355e958ac77034692b101e6346c7bc353a9ad21c013992aff43d055"; gdxidpyhxdE=JbXPXLBqLi6GK31eGkNvrszIm%2Fg%2FtjWLrllf4c9xHms5Bc7g74xHrySLYSfinrarq0%5CLuuqcLKCympc4SsAU4IIoXaGNkwhJ2sBkjKOKdW6gR%2F9GV%5C%5Ce1DIfeDP2TlYL3BsxJcnj%2FNfmu0PhKktqRen3JSq7MReAOJkdx%2FhPmHXGphc8%3A1621933366142; YD00517437729195%3AWM_NI=AoJy0bekE%2F8X7hB9lSLdYi0X%2F6pOUWDn0KhWP7FyAAYeWyjGcWhyTwVQdnl5SRLwKN8mfv9Z8%2BPESIxWU4d%2B7o9qMebkgoqE6wySx0nq7pyANKsXw5uVBSEI42A%2B4w8SWno%3D; YD00517437729195%3AWM_NIKE=9ca17ae2e6ffcda170e2e6eebbd833bb9c83bac96896868fa3d14a929b9aabf43cb1f0ac8fec42b49c988fb82af0fea7c3b92a83b1869ab36aa7b58bd0bb54f5b88edaef5990bc978ab354edeac0b0d85d88b200aceb5d94e98a9ac44b9bbb999ae94da189a89ad77d968fac8fef3f918e8498ca46fcb3aa97bc52fcf5a0a6d243bc899bd5e721f5b1f792d06fa2b5a990f44ff6a9b7b4fb3caeaff991fc4b8e95bdb9f63fb78a8eb4c843f8ee8fccb77dfc8d998fee37e2a3; captcha_ticket_v2="2|1:0|10:1621932471|17:captcha_ticket_v2|704:eyJ2YWxpZGF0ZSI6IkNOMzFfWm1KWU0yUzl0TFlYZ3BWcGdJbkExbWFZYk9GLnhCZFBrTmNKUDBjdDFCRU14SHFJU2tHUWpJTjU4VjJCSlNuQTBPUFdGTmhmc21tSjVfVE9rV3FVVHpxYmUuV0EuZkpTN0Ffd1JPVFpvcjZQNlhDUS1nLVFlaTFMQXYuQWxSZmVzbEVLTGZWbUljU2Z6Wlh2enRKcUxzbnJDWlRILV9ZSy1rQUwuanJYMWJpQ0YyZzBYS1JaUEJKWm4tUW14Yk1OUmJNay1jTHA2bWsuY3FoRXFpaGxQeUtia0haaXBuTXhNX1JoWl9FVWl4eEtHT2ZINVJha2s5MHdMV3ouTWstam5DZTYtVFNyclh0cW9PQ1VjOHVjdXVtV01hUmtyQ3RHZ1d1bkJLenpUNUE1UkMxWFF4Tk5TZ05CY25HZnB2Wm1uZ1NoNGRrdGRwWUNXZk5ENFRVUkJ6MDBpRFUuRVYwbllxZ3NNUkYwc1pXWVlFX2VfS0Vja0RmeWc4aS5jMG51TUZvQ0xPUEZ0QTJHcWZjUlowaElCejYycFJReUR2dEtEQVNLNmlCYmR1Ulhya1NWY1ZFaEQ3LkxVQ1ZfLk5vd0RCUzQwb2FrYmFxTElHeGZnTkFmSFRwU19CSnQuUGFNUHREX2pBZ3ZwektBLmxaNHF5VjExMWVjc0NjMyJ9|393d2c8a4b7549a8c1df5184f3357547d2729421472ab7a59df83361d333880a"; z_c0="2|1:0|10:1621932484|4:z_c0|92:Mi4xaW5CWUdRQUFBQUFBd040LWlScmZFaVlBQUFCZ0FsVk54QWVhWVFCUFZ2NWhKbEJhWTB3cktxM005aUd4dEUxeXl3|6c3317d4aa2dbb0b06da1ea42761e973bfce66fdc118b87e578039301d30e8f1"; unlock_ticket="ADAc3rNA2xAmAAAAYAJVTczArGCn_dAUlOdmvcCoBo_kYjILeHHftw=="; tst=r; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1621932514; SESSIONID=clHAvrHVjgNck8AMqCNSKP4X6K6ov2BXsft9fu7LCYi; JOID=UF4WCkyKtnjwsrOkVoH35M89onpF7d86v8HF6Qrl1TOZ147hHm4A0JuzsqtSlWPkDvl7Fjh_MQJVoIKudYs-I6g=; osd=Wl8XAUuAt3n7tbmlV4rw7s48qX1P7N4xuMvE6AHi3zKY3InrH28L15Gys6BVn2LlBf5xFzl0NghUoYmpf4o_KK8=; KLBRSID=5430ad6ccb1a51f38ac194049bce5dfe|1621932577|1621932461'
}

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

if response.status_code == 200:
    print(response.text)
else:
    print('请求失败!', response)

作业

import requests
from re import *

url = 'https://www.imdb.cn/IMDB250'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}
response = requests.get(url, headers=headers)
result = response.text
print(result)
re_str = r'''(?s)blank"><img src="(.*?)".*?title='(.*?)' '''
result1 = findall(re_str, result)
print(result1, len(result1))
for x in result1:
    url1 = x[0]
    response1 =requests.get(url1)
    if response.status_code == 200:
        f = open(f'./img/{x[1]}.jpg', 'wb')
        f.write(response1.content)
        f.close()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,899评论 28 54
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 6,394评论 4 8
  • 怎么对待生活,它也会怎么对你 人都是哭着来到这个美丽的人间。每个人从来到尘寰到升入天堂,整个生命的历程都是一本书,...
    静静在等你阅读 5,340评论 1 6
  • 步骤:发微博01-导航栏内容 -> 发微博02-自定义TextView -> 发微博03-完善TextView和...
    dibadalu阅读 3,430评论 1 3

友情链接更多精彩内容