python 19 认识爬虫+认识前端开发

python 19 爬虫+认识前端开发

一 、爬虫介绍

1. 什么是爬虫 ?

爬虫就是获取网络数据(公开的数据)网络数据来源:网站对应的网页、手机APP(直接找到接口)

2. 爬虫的基本流程
  • 第一步:获取网络数据(requests、selenium)

  • 第二步:解析数据-从获取到的网络数据中提取有数据(正则:最快但是难,bs4基于第三方工具,lxml会前端的相关知识)

  • 第三步:保存数据:保存数据(csv、excel、数据库)

2.1 requests

​ python获取网络数据的第三方库(基于http或者https协议的网络请求)

​ 爬虫使用requests的两个场景:直接请求网页地址、对提供网页数据接口发送请 求。

2.2 requests基本用法
  • 对目标网页直接发送请求:

    • 语法:requests . get(网页地址) - 获取指定页面的数据返回一个响应对象。

      response=requests.get('https://cd.zu.ke.com/zufang')
      print(response)
      #<Response [200]>   200 - 这个说明响应成功
      
  • 获取响应对应的状态码

    print(response.status_code)  #状态码可以用来做判断
    if response.status_code != 200:
        pass
    
  • 获取响应头

    print(response.headers) #可以得到系统,字符编码方式,响应时间,等
    
  • 获取请求内容

    • response . content : 二进制类型的数据(图片、视频、音频,例如图片下载)。

    • response . text : 字符串类型的数据(网页)

      • 请求对象是网页的时候,就使用,后面支持正则解析
    • response . json ( ) : 对请求内容做完json解析后的数据 (json数据接口)

      • 里面不提供数据,只是一个json数据的接口

        print(response.text)   
        
    • 使用ctrl+f就可以对控制台的内容进行检索 , 检验得到的内容是否正确。

二 、认识前端开发

1. html 基础

html是以标签为单位的,不同的表标签提供不同的内容

1)文本标签的语法结构
  • 双标签:

    • <标签名 属性名1=属性值1 属性名2=属性值2···>标签内容 </标签名>

    • <标签名(父标签) 属性名1=属性值1 属性名2=属性值2···>标签内容(子标签)</标签名>

      <标签名 属性1=属性值1 属性2=属性值2 ......>标签和内容</标签名>
      
  • 单标签:两种写法

    • <标签名 属性名1=属性值1 属性名2=属性值2···>

    • <标签名 属性名1=属性值1 属性名2=属性值2···/>

      <标签名 属性名1=属性值1 属性名2=属性值2···>
      <标签名 属性名1=属性值1 属性名2=属性值2···/>
      
  • 标题标签 < h1 >、 < h2 >、 < h3 >、 < h4 >、 < h5 >、 < h6 >

    • 标题标签最多只能写到h6

      <h1>好好学习<h1>
      <h2>好好学习<h2>
      <h3>好好学习<h3>
      <h4>好好学习<h4>
      <h5>好好学习<h5>
      <h6>好好学习<h6>
      
    • 结果显示

  • 段落标签 < p >

    标题标签和段落标签会自动换行(一个标签代表一行或者一段,写下一个标签时自动另起一行)

  • 文字倾斜标签 < i >、< em >

  • 文字加粗标签 < b> 、 < strong >

    • 文字标签可以混合使用

      <i>
      	<b>文字倾斜又加粗</b>
      </i>
      	
      <b>
      	<i>文字倾斜又加粗</i>
      </b>
      <em>文字倾斜</em>
      <strong>文字加粗</strong>
      
  • 换行标签 < br >

  • 水平线标签 < hr >

  • 行内文本标签 < span >

  • 关于空格

    • html页面敲任意多个空格恒等于一个空格
    • html中一个空格可以用下列两种方式表示:&nbsp; 或者 &emsp; (要加分号)
    • & nbsp;表示一个像素(px)单位的空格
    • & emsp;表示一个汉字的宽度,一个&emsp;=16&nbsp;
    <span>&nbsp;</span>
    <br>
    <span>&emsp;</span>
    
2)超链接和图片
  • 图片标签
<img src="" alt="" title="">

​ 区别:src: 1.可以写入链接。2.可以写入本地路径,

​ title:鼠标放到图片上可以提示文字,

​ alt : 当图片不显示时,显示文字

​ width、height:能够修改图片、标签盒子等的显示 宽度和高度。

```html
<img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt="百度" title="点击一下,了解更多" width="100px" height="250px">
```
  • 超链接标签 < a >

    <a href="" target=""></a>
    
    • href

      • 入在线链接

      • 可以引入本地文件(必须是html文件)

      • 可以引入id选择器

    • target

      • _ self : 当前标签页跳转(默认)

      • _ blank : 新的标签页跳转

        <a href="https://www.baidu.com" target="_blank">百度一下</a>
        
  • 如何将图片变为可点击的超链接?

  • 以某图片为例

    <a href="https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6%E7%83%AD%E6%90%9C&sa=ire_dl_gh_logo_texing&rsv_dl=igh_logo_pc" target="_blank">
    					<img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt="" width="270px" height="129px" class="a1">
    				</a>
    
  • input 标签

    • input:默认是一个文本框,但是通过修改type属性的值可以将input构造成不同的形式

    • placeholder:输入框中的提示性文字

    • maxlength : 限制输入内容的长度

      <input type="text" placeholder="" maxlength="">
      <input type="password" placeholder="请输入密码" maxlength="5">
      <!-- value:当input为按钮时,在按钮上显示文字 -->
      <input type="submit" value="登录" ><br>
      		
      <input type="color">
      <input type="file">
      <input type="date">
      <input type="time">
      <input type="datetime-local">
      
  • radio和 checkbox

    • radio:单选框

      • name:告诉系统两个单选框属于同一类

      • 将单选框中的id属性值设置为和lable标签中的for属性值相同,表示相关联

        <input type="radio" name="gender" id="gender1"><label for="gender1"></label>
        <input type="radio" name="gender" id="gender2"><label for="gender2"></label>
        
    • checkbox:复选框

      喜欢玩的英雄类型:
      		<input type="checkbox">法师  
      		<input type="checkbox">射手
      		<input type="checkbox">辅助
      		<input type="checkbox">打野
      		<input type="checkbox">都OK
      
  • select 下拉列表

    王者喜欢几排:
    		<select name="" id="">
    			<option value="单排">单排</option>
    			<option value="双排">双排</option>
    			<option value="五排">五排</option>
    			<option value="随便几排">随便几排</option>
    		</select>
    
    • 不是标签内容就是标签属性,分清楚所需要的内容是标签内容还是属性。
    • div标签是用来规范格式的,就像是正则里面的分组一样

2 . css 基础

  • 前端开发 - 写各种互联网产品页面(电脑)
    (cocos2dx苹果游戏开发),unity3d三d游戏开发。
  • 微信小程序是前端写的,支付宝小程序。
  • 前端相关技术:html 、css、js(原生js、jQuery、Vue、React)
    • html - 负责网页内容【要知道网页原理】、
    • css - 负责前端布局
    • js - 负责网页内容的变化
css负责网页内容样式(让网页变得更美观)
2.1 css语法
  • 选择器{属性值1:属性值;属性2:属性值2;···}
  • 选择器:选中需要添加样式的标签。
2.2 css选择器

独立存在的选择器只有三个,通常是复杂的选择器

1)【***】 元素选择(标签选择) ----- 将标签作为选择器,选择所有指定标签

  • p{ } - 选中所有的p标签
  • a{ } - 选择所有的a标签

2 ) 【***】 id标签 ----- 在id属性值前加#作为一个选择器,选择id属性值为指定值的标签

​ 每一个可见的标签都可以设置id属性,并且同一个页面中,同一个id值只有一标签

  • #p1 - 选择id 属性值为p1的标签
  • #a - 选择id 属性值为a的标签

3 ) 【***】class 选择器 ---- 在class属性值前面加.作为一个选择器,选择class属性值为指定值的标签.

  • 不同的标签可以有相同的class值;同一个标签可以有不同的class值

  • class值有多个,多个值之间用一个空格隔开,class选择器获取标签类型

    • .c1 - 获取class值为c1的所有标签

    • p.c1 - 获取class值为c1的所有p标签

    • .c1.c2 - 获取class值同时为c1和c2的标签。

4)群组选择器 - 将多个选择器用逗号隔开作为一个选择器

  • p , a{} - 选择所有的p标签和所有的a标签
  • #p1, c1 , p{} - 选中id为 #p1 的标签和class为c1的标签,和所有的p标签

5 ) 【***】子代选择器 - 多个选择器用>隔开作为一个选择器
div>{ }

6 )【***】 后代选择器 - 多个选择器用空格隔开作为一个选择器
div p{ } (之间有一个空格)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		
		<!-- style标签中可以写css代码 -->
		
	</head>
	<body>
		------------1. 元素选择器案例 --------
		<style>
			p{
				color: red;
				font-size: 30px;
			}
		</style>
		<p>我是段落1</p>
		<a href="">我是超链接1</a>
		<div>我是div1</div>
		<a href="">我是超链接2</a>
		<p>我是段落2</p>
		
		<!-- ------------2. id选择器案例 --------
		<style>
			#p2{
				color: green;
				background-color: yellow;
			}
		</style>
		<p>我是段落1</p>
		<a href="">我是超链接1</a>
		<div>我是div1</div>
		<a href="">我是超链接2</a>
		<p id="p2">我是段落2</p>
		
		
		<!-- ------------3. class选择器案例 -------- -->
		<style>
			.c1{
				color: red;
				font-size: 30px;
			}
			
			.c2{
				background-color: yellow;
			}
			
			p.c1{
				text-decoration: line-through;
			}
			
			.c1.c2{
				border: 1px solid blue;
			}
		</style>
		<p class="c1 c2">我是段落1</p>
		<a class="c2" href="">我是超链接1</a>
		<div>我是div1</div>
		<a class="c1" href="">我是超链接2</a>
		<p id="p2">我是段落2</p>
		<p class="c1">我是段落3</p>
		
		
		------------4. 群组选择器案例 --------
		<style>
			a,p{
				color: red;
				font-size: 30px;
			}
			.c1,a{
				background-color: yellow;
			}
		</style>
		<p class="c1">我是段落1</p>
		<a href="">我是超链接1</a>
		<div>我是div1</div>
		<a href="">我是超链接2</a>
		<p>我是段落2</p> -->
		
		
		<style>
			p{
				color: red;
			}
			
			div>p{
				font-size: 30px;
			}
			
			div p{
				background-color: yellow;
			}
			
			#box1>div p{
				
			}
		</style>
		
		<p>我是段落1</p>
		
		<div>
			<p>我是段落2</p>
			<span>
				<p>我是段落5</p>
			</span>
		</div>
		
		<div id="box1">
			<p>我是段落3</p>
			<div>
				<span>
					<div>
						<p>我是段落4</p>
					</div>
				</span>
			</div>
			
		</div>
		
		
		
	</body>
	
</html>

今日作业:

1、回顾今日内容
2、租房信息 用正则表达式取出一页中房屋名字和价格

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值