day 1-requests基础用法和网页基础
1. requests用法
1.认识爬虫
1)爬虫
用程序自动获取网页数据(可以让数据采集的过程变得简单又高效)
2)爬虫流程:
第一步:获取网络数据(数据采集) - requests、selenium
第二步:提取有效(有用)数据(数据解析) - 正则表达式、基于css选择器的解析器( bs4)、基于xpath的数据解析( lxml)
第三步:数据持久化(保存数据) - csv、excel、数据库
2. requests的用法
requests是Python做http请求(网络请求)的第三方库,也是爬虫最简单又最实用的工具。
1)发送get请求
requests.get(url) - 发送请求获取指定网页的数据,返回一个响应对象。
注释:url叫统一资源定位符。(互联网中的每一个数据都有一个唯一的地址,这个地址就是这个数据的url)
url基本格式:协议://主机地址/路径
https://www.baidu.com
功能1∶获取网页数据(爬虫)
1)发送get请求
url赋网页地址 - 你需要爬哪个网站的数据,就给哪个网站的网页地址
response = requests.get('https://cd.zu.ke.com/zufang')
2)获取网页数据:响应对象.text
获取到的是网页源代码
print(response.text)
功能2:下载数据(图片、视频、音频)
1)发送get请求
url赋值图片、视频、音频的地址
response = requests.get('https://game.gtimg.cn/images/lol/act/img/vo/ban/1.ogg')
2)获取图片、视频、音频的二进制数据:响应对象.content
result = response.content
3)将图片、视频、音频保存成响应的文件到本地
with open('files/', 'wb') as f:
f.write(result)
功能3:获取接口数据
1)发送get请求
url赋接口地址
如果网络地址提供的内容是数据(一般是json数据),那么这个地址就是数据接口
response = requests.get('http://api.tianapi.com/auto/index?key=c9d408fefd8ed4081a9079d0d6165d43&num=10')
2)直接对请求到的数据做json解析
result = response.json()
for x in result['newslist']:
print(x['title'])
2.认识网页
1.前端开发 - 写页面
前端三大技术:html(提供网页内容)、css(负责网页内容样式和布局)、js(负责网页内容变化)(JavaScript)
html是以标签为单位来给网页提供不同的内容。(不同的标签可以提供不同的内容)
2. html基本结构
-->
<!--
DOCTYPE: html版本说明
html: 表示当前采用html是最新版本(html5)
-->
<!DOCTYPE html>
<!--整个网页就是一个html标签, 里面包含一个head标签和一个body标签
head只负责网页标题和网页图标
body负责网页的内容
-->
<html>
<head>
<meta charset="UTF-8">
<title>xiangcai</title>
</head>
<body>
</body>
</html>
3. html常用标签1
1.标签语法
html中标签分为:单标签、双标签
1)双标签
<标签名 属性名1=属性值1 属性名2=属性值2…>标签内容 </标签名>
2)单标签
<标签名 属性名1=属性值1 属性名2=属性值2…> 或者 <标签名 属性名1=属性值1 属性名2=属性值2…/>
说明:
标签名 - 是html提前创建好的,不需要程序员自己创建,只需要在需要某个标签的功能的时候使用该标签
属性 - 以’属性名=属性值’的形式存在,多个属性用空格隔开。
属性值不管从生活的角度是什么类型的数据,都必须加双引号。
标签内容 - 只有双标签才有标签内容,标签内可以是纯文字,也可以是一个或者多个其他标签,还可以是文字和标签的组合
<!DOCTYPE html>
<html lang="en">
<head>
<!--------------- 2.head中的标签 --------------->
<!-- 设置网页编码方式 -->
<meta charset="UTF-8">
<!-- 设置网页标题 -->
<title>YuTing</title>
<!-- 设置网页图标 -->
<link rel="icon" type="image/jpeg" href="./files/luffy.jpeg">
</head>
<body>
默认文字
<!--------------- 3.body中的标签 --------------->
<!-- 1)文字相关标签
1. 标题标签: h1 ~ h6
2. 段落标签: p
3. 行内文字标签:span、b、i
-->
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
<h1>前5月实际使用外资同比增17.3%</h1>
<span>2022-06-19 08:15</span>
<span>|</span>
<span>北京青年报北青网官方帐号</span>
<p>人民日报北京6月18日电(记者 <b>罗珊珊</b> )商务部日前发布数据显示,今年1—5月,全国实际使用外资金额5642亿元,<i>同比增长17.3%</i> 。</p>
<p>前5月,我国实际使用外资质量显著提高。从行业看,服务业实际使用外资4233亿元,同比增长10.8%。高技术产业实际使用外资同比增长42.7%,其中高技术制造业增长32.9%,高技术服务业增长45.4%。</p>
<b>青瞳视角</b>
<b>相关推荐</b>
<i>百度热搜</i>
<!-- 2)图片标签: img
src属性: 需要显示的图片地址
title属性:图片标题
alt属性:图片加载失败的提示信息
-->
<!-- 显示网络图片 -->
<img title="百度" src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png">
<!-- 显示本地图片 -->
<img title="路飞" src="files/luffy.jpeg">
<img alt="Error" src="files/luffy.jpg">
<!-- 3)超链接:a
标签内容: 超链接可见可点击的部分
href属性:跳转的目标地址
target属性:跳转方式
-->
<br>
<!-- 文字超链接 -->
<a target="_blank" href="https://tieba.baidu.com/index.html">贴吧</a>
<br>
<br>
<!-- 图片超链接 -->
<a target="_blank" href="https://www.baidu.com">
<img src="files/aaa.ico">
</a>
<br>
<a target="_blank" href="https://www.baidu.com">
百度<img src="files/aaa.ico">
</a>
</body>
</html>
4. html常用标签2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- 1. 列表标签: ol、ul
1)有序列表: ol - li
ol标签: 提供一个容器,相当于Python列表的[]
li标签: 提供列表中的元素
2)无序列表: ul - li:
-->
<h1>成都校区所有的学科</h1>
<ul>
<li>
<h3>Python数据分析</h3>
<img src="https://img0.baidu.com/it/u=4193016324,926387845&fm=253&fmt=auto&app=120&f=JPEG?w=580&h=379">
<p>数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用。数据分析是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。数据分析的数学基础在20世纪早期就已...</p>
</li>
<li>
<h3>前端开发</h3>
<img src="https://img0.baidu.com/it/u=368014310,2434905724&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=355">
<p>前端开发是创建WEB页面或APP等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。前端开发从网页制作演变而来,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web...</p>
</li>
<li>后端开发</li>
<li>UI设计</li>
</ul>
<h1>成都校区所有的学科</h1>
<ol>
<li>Python数据分析</li>
<li>前端开发</li>
<li>后端开发</li>
<li>UI设计</li>
</ol>
<!-- 2.输入框: input -->
<input type="text" value="张三">
<!-- 3.按钮:button、input -->
<input type="button" value="确定">
<button>取消</button>
<!-- 4.div标签
-->
<div>
</div>
<!-- =============================================================== -->
<div>
<div>
<div>
<img>
<img>
</div>
<div>
<a>登录页面,调查问卷</a>
</div>
</div>
<div>
<i></i>
<p></p>
</div>
</div>
<div>
<div>
<div>
<div><p></p></div>
<div>
<button></button>
<button></button>
</div>
</div>
<div>
<div>
<div>
<img>
<input>
</div>
<div></div>
</div>
<div></div>
<div></div>
</div>
<div></div>
</div>
</div>
<div></div>
</body>
</html>
5. css选择器
1. css语法
css负责网页内容的样式和布局。(主要负责让网页变得好看)
语法:
选择器{属性名1:属性值1; 属性名2:属性值2; 属性名3:属性值3;…}
说明:
选择器 - 选中标签(需要给哪个标签设置样式,就通过选择器选中那个标签)
属性 - 不同的属性表示不同的样式。
常见名:
color | 设置文字颜色 |
---|---|
background-color | 设置背景颜色 |
font-size | 设置字体大小 |
width | 设置宽度 |
height | 设置高度 |
2.选择器
1)元素选择器(标签选择器):
直接将标签名作为一个选择器,选中指定的所有标签
例如:p{} - 选中所有的p标签;
a{} - 选中所有的a标签
2)id选择器:
在id属性值前加#作为一个选择器,选中id属性值为指定值的标签
例如:#p1{} - 选中id属性值为p1的标签
3)类选择器:
在class属性值前加.作为一个选择器,选中class属性值为指定值的所有标签
(不同标签的class属性值可能相同,同一个标签可能有多个不同的class值)
例如:.c1 - 选中class属性值包含c1的所有标签
c1.c2 - 选中class属性值同时包含c1和c2的所有标签
4)群组选择器:
多个选择器用逗号隔开作为一个选择器,选中用逗号隔开的每个选择器选中的所有标签
例如:p , a{} - 选中所有的p标签和所有的a标签
p ,#p1,.c2{} - 选中所有p标签和所有id为p1的标签以及所有class值为c2的标签
5)子代(父子)选择器:
多个选择器用>隔开作为一个选择器
6)后代选择器:
多个选择器用隔开作为一个选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 在style标签中写css代码 -->
<style>
.c1>div p{
color: red;
}
</style>
</head>
<body>
<div>
<div id="box1">
<div class="c1">
<p>我是段落1</p>
<div>
<div>
<div>
<p>我是段落2</p>
</div>
</div>
</div>
</div>
<div class="c2">
<p>我是段落3</p>
</div>
</div>
<div>
<div>
<p>我是段落4</p>
</div>
</div>
<div>
<p>我是段落5</p>
</div>
</div>
</body>
</html>