day22css选择器和简单爬虫

day22css选择器和简单爬虫

1css常用标签

1多行文本输入框:textarea


2下拉列表:select-option



2css基本3种样式表

1css层叠样式表,简称样式表,负责网页的布局和美化

2样式表写在哪

1)内联样式表:将css代码写在标签的style属性里面

段落1

百度

2)内部样式表:将CSS代码写在标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iiq41gwS-1647348139723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315194009168.png)]

3)外部样式表:将css代码写在css文件里面,然后在html中用link导入

		

段落3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6pcP9GJ-1647348139730)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315195641257.png)]

3css语法

选择器{属性1:属性值1;属性2:属性值2.。。}

3CSS选择器(重要)

1元素选择器(标签选择器)

将标签作为选择器,选中所有的指定标签

例:a{}选中所有的a标签,p{}选中所有的p标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7MJPkWwl-1647348139736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201618296.png)]

2id选择器

在id属性值前加#作为一个选择器,选中id属性值是指定的标签()

例:#a1{}选中所有a1的标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMTYEH6u-1647348139740)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201549182.png)]

3class选择器

在class属性值前面加.作为一个选择器,选中class属性值是指定值的标签

(不同的标签可以用相同的class属性值)同一个标签可以有不同的class

例:.c1{}-选中所有class属性值为c1的标签

​ .c1.c2{}选中一个同时有c1c2的属性值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bDCIWzZe-1647348139744)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201511906.png)]

4群组选择器

将多个选择器用逗号隔开作为一个选择器

例:p,a{}-选中所有的p标签和a标签

​ p,c1{}-选中所有的p标签和c1标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-75YBMn4Y-1647348139747)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201435319.png)]

5子代选择器

将多个选择器用>隔开作为一个选择器

例:div>#p1>a选择div下面的id为p1下面的a标签

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmckhObK-1647348139750)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201340173.png)]

6后代选择器

将多个选择器用空格隔开作为一个选择器

例:div div a选中div下面的div下面的a标签(前后是后代关系)

	

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D33BWaBX-1647348139753)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201231772.png)]

	

我是段落1

我是段落2

我是span1

我是段落3

  • 段落5

我是段落4

我超链接2
我是超链接1

4用requests爬虫的流程

1resquests使用流程

#request是python用于网络(http)请求的第三库。也是爬虫获取网络数据的重要工具
#1.向目标地址发送请求
"""
res=requests.get(url,headers,proxies,timeout)
参数说明:
url-字符串;请求的地址,可能是目标网站的地址,可能是接口
headers-字典;请求头,用于伪装刘来气设置user-agent,完成自动登录设置cookie
proxier-字典;设置ip(ip地址被封的时候使用)
timeout-数字;设置超时时间
#2.获取响应头
# print(res.headers)
#3.设置响应的编码方式
res.encoding=''
#4获取请求结果
#1)获取字符串格式
# print(res.text)
#2)获取二进制格式的结果(爬图片,视频,音频)
print(res.content)
#3)获取json结果(爬接口数据)
print(res.json())
import requests
url='https://cd.zu.ke.com/zufang/gaoxin7/rs%E9%AB%98%E6%96%B0/'
headers={
    'cookie':'lianjia_uuid=37f014ec-d63d-4650-b9ea-80689a015917; select_city=510100; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2217f87baad81b-02ad41eab3616d-35385a00-1440000-17f87baad83ad%22%2C%22%24device_id%22%3A%2217f87baad81b-02ad41eab3616d-35385a00-1440000-17f87baad83ad%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.baidu.com%2Flink%22%2C%22%24latest_referrer_host%22%3A%22www.baidu.com%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%7D%7D; GUARANTEE_POPUP_SHOW=true; lianjia_ssid=9473ac4d-7bf6-405b-a6fb-e5725d4011b6; srcid=eyJ0Ijoie1wiZGF0YVwiOlwiZDdhZDk2MzZhYzg1MzUzZmNjMDI2Mzk0YTYzZTk3ZmFkYzRhMWIwOTE4MzBhYzk5ZWMwNzIxNzBmMTM5NjM1YmNhZjkzOTJmMjlmOGM0NzA1ZDg1OWFjNDE0ZGRjNGQxOGM1NzEyZmIzOTVmNjRkOTZiMzA3MjU3ZTdiNTlkYmVkNDNlMTU1NjFiODQ0ODc0ZTAyYmYyOTBhMjYzNWNkNDg0MGExM2E5Nzk3NjVmN2RiNzk1ZGEzODc1ZjBjNTY5MDcxMGQ0MzI3MjIwODgzZDMxYTljODkzMzUyMTA5NzFmMDRjZGU1MzJjYjAxYWRkOGJhNTlmZTk4YjY2YTgzYVwiLFwia2V5X2lkXCI6XCIxXCIsXCJzaWduXCI6XCJiY2YyYmU0Y1wifSIsInIiOiJodHRwczovL2NkLnp1LmtlLmNvbS96dWZhbmcvZ2FveGluNy9ycyVFOSVBQiU5OCVFNiU5NiVCMC8iLCJvcyI6IndlYiIsInYiOiIwLjEifQ==',
    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
res=requests.get(url,headers=headers)

print(res.text)

2下载图片保存到文件夹里

import requests
#1发送请求
url='https://www.godiva.cn/img/ban-1.e6ae12ca.jpg'
headers={

    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
res=requests.get(url,headers=headers)
print(res.content)
#2.保存图片到本地
open('files/a.png','wb').write(res.content)

3json接口数据

import requests
import os
url='https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2745548'
headers={

    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
res=requests.get(url,headers=headers)
print(res.json())
#2.保存图片到本地
# open('files/a.png','wb').write(res.content)
count=0
for hero in res.json()['hero']:
    print(hero['name'])
    a_url=hero['selectAudio']
    res=requests.get(a_url)
    open(f'files/{os.path.basename(a_url)}', 'wb').write(res.content)
    count+=1
    if count==10:
        break

4bs4的用法

from bs4 import BeautifulSoup
import lxml
#1.创建beautiful对象--返回网页对象soup
html=open('files/05css选择器.html',encoding='utf-8').read()
soup=BeautifulSoup(html,'lxml')
print(soup)
#2.解析获取标签
#BeautifulSoup对象.select(css选择器)-返回css选择器在整个网页中选中的所有标签,以列表的形式返回
#BeautifulSoup对象.select_one(css选择器)-返回CSS选择器在整个网页中选择的第一个标签
result=soup.select('p')
print(result)

result=soup.select_one('p')

#2)基于指定标签获取标签
#标签对象.select(css选择器)-在指定标签中按照选择器选中相关标签
#标签对象.select_one(css选择器)
div1=soup.select('#box')
result=div1.select('p')
print(result)
#3获取标签内容和标签属性值
#1)获取标签内容:
# 标签对象.text
#标签对象.string
result=soup.select_one('#2').text
print(result)
#获取所有的p标签
for i in soup.select('p'):
    print(p.text)

#2)获取标签属性
#标签对象.attrs[属性名]
result=soup.select_one('#a1').attrs['href']
print(result)
'#box')
result=div1.select('p')
print(result)
#3获取标签内容和标签属性值
#1)获取标签内容:
# 标签对象.text
#标签对象.string
result=soup.select_one('#2').text
print(result)
#获取所有的p标签
for i in soup.select('p'):
    print(p.text)

#2)获取标签属性
#标签对象.attrs[属性名]
result=soup.select_one('#a1').attrs['href']
print(result)

你可能感兴趣的:(爬虫,css,html)