段落1
百度
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Iiq41gwS-1647348139723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315194009168.png)]
段落3
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K6pcP9GJ-1647348139730)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315195641257.png)]
选择器{属性1:属性值1;属性2:属性值2.。。}
将标签作为选择器,选中所有的指定标签
例:a{}选中所有的a标签,p{}选中所有的p标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7MJPkWwl-1647348139736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201618296.png)]
在id属性值前加#作为一个选择器,选中id属性值是指定的标签()
例:#a1{}选中所有a1的标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMTYEH6u-1647348139740)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201549182.png)]
在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)]
将多个选择器用逗号隔开作为一个选择器
例:p,a{}-选中所有的p标签和a标签
p,c1{}-选中所有的p标签和c1标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-75YBMn4Y-1647348139747)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201435319.png)]
将多个选择器用>隔开作为一个选择器
例:div>#p1>a选择div下面的id为p1下面的a标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmckhObK-1647348139750)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201340173.png)]
将多个选择器用空格隔开作为一个选择器
例:div div a选中div下面的div下面的a标签(前后是后代关系)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D33BWaBX-1647348139753)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220315201231772.png)]
我是段落1
我是段落2
我是span1
我是超链接1
#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)
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)
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
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)