生产实习第六天
基础HTML
HTML概述
1、概念:超文本标记语言,是一种专门用于创建Web超文本文档的编程语言,它能告诉Web浏览程序如何显示Web文档(即网页)的信息,如何链接各种信息。
2、基本结构:
说明:开始+网页头部+主体部分+结束
3、网页基本信息
一号标题
二号标题
三号标题
四号标题
五号标题
六号标题
这是一个段落,
在p标签里
这是第二个标签内容
中国 &nnbsp; 加油 <&qt;
编码要统一:浏览器编码、文件编码、网页编码,选择合适的:‘gbk’,’gb2313’,’UFT-8’
单标签格式:
<内容>,内容如下:
(在下面整行代码两头加<>)
meta … /
br/ 换行标签
hr/ 水平线标签水平线标签
img … /
input …/
注释格式:
<内容>,内容如下:
!-- 注释内容 –
特殊符号:
&内容,内容如下:
空格 nbsp;
> gt;
< lt;
" quot
图片标签:
<内容>,内容如下:
img … /
超链接:
_self 本页面打开 _blank 新页面打开
列表格式:
<内容>,内容如下:
ul type=… 无序
ol 有序
dt --defination term
dd --defination description
表格内容:
<内容>,内容如下:
table border=1(边框是一个像素) align=center(居中)
属性 | 值 | 说明 |
---|---|---|
align 水平对齐方式 | left | 左对齐 |
center | 居中对齐 | |
right | 右对齐 | |
valign 垂直对齐方式 | top | 顶端对齐 |
middle | 居中对齐 | |
bottom | 底端对齐 | |
baseline | 基线对齐 |
表单
用来接收用户信息的标签
表单标签是前后端沟通的桥梁
<input …>
其中type=”button” 普通按钮
type类型繁多:
爬虫
爬虫就是一段自动抓取互联网信息的程序
Robots协议:网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。不遵守Robots协议有可能会被网站方追究法律责任
步骤:
1 获取网页:库urllib.requests
2 解析网页:Xpath,bs4
3 存储文件:存入文件或数据库
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST
GET 请求发参数,网址?+请求&请求
GET - 从指定的资源请求数据;
查询字符串(名称/值对)是在 GET 请求的 URL 中发送的
POST 请求在文件内,为了安全
POST - 向指定的资源提交要被处理的数据
查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的
urllib库
urllib.request
(1).发送请求:urlopen(url地址或Request对象)
response = request.urlopen(url地址或Request对象) # 发送请求,返回一个响应对象
print(response.status) # 获取响应状态码
print(response.read().decode()) # 获取响应内容,并将字节序列解码为字符串
from urllib.request import urlopen,Request
if __name__ == '__main__':
url = "https://www.baidu.com" # 封装请求头信息
header_dict = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}
r = Request(url,headers=header_dict) # 创建Request对象,并传入请求地址和请求头信息
response = urlopen(r) # 发送请求
print("响应状态码:", response.status)
print("响应内容是:")
print(response.read().decode()) # 读取内容,并解码为字符串
未爬到数据,百度反爬虫技术,伪装成浏览器爬虫:
2.创建Request对象:Request(url,data=params.encode(),headers={}) 创建Request对象,封装URL地址和请求参数
from urllib.request import urlopen,Request
if __name__ == '__main__':
url = "http://httpbin.org/post"
params = "name=alice&age=25" # 如果在Request中传入data参数,则为POST请求
r = Request(url,data=params.encode()) # 创建Request对象,并传入请求地址和请求参数 response = urlopen(r) # 发送请求
print("响应状态码:", response.status)
print("响应内容是:")
print(response.read().decode()) # 读取内容,并解码为字符串
3.注意:data参数必须是字节数据,如果传递data参数,则默认是POST请求
4.下载资源:urlretrieve(url地址,filename=存放地址)
from urllib.request import urlretrieve
if __name__ == '__main__':
url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1593844077779&di=0721cdcfa0953f4e7688f13603c428bb&imgtype=0&src=http%3A%2F%2Fa3.att.hudong.com%2F14%2F75%2F01300000164186121366756803686.jpg"
urlretrieve(url,filename="download/tupian.jpg") # 下载资源
print("下载成功!")
5.测试网址:http: // httpbin.org / post
http: // httpbin.org / get
urllib.parse
解析参数:urlencode(params_dict_tuple)
from urllib.request import urlopen,Request
if __name__ == '__main__':
url = "http://httpbin.org/post"
params = "name=alice&age=25"# 如果在Request中传入data参数,则为POST请求
r = Request(url,data=params.encode()) # 创建Request对象,并传入请求地址和请求参数 response = urlopen(r) # 发送请求
print("响应状态码:", response.status)
print("响应内容是:")
print(response.read().decode()) # 读取内容,并解码为字符串
import requests
if __name__ == '__main__':
url = "http://httpbin.org/get"
params_dict = {
"name":"tom",
"age":22
}
response = requests.get(url,params=params_dict) # 发送GET请求
print("响应状态码:",response.status_code)
print("响应内容:")
print(response.text)
将字典(或元组——每个元素是包含两个元素的小元组)转换为字符串格式的查询参数
requests库
1.安装方式:pip install requests
2.发送请求
GET请求
resp = requests.get(“url地址”,params=字典,headers=字典)
POST请求
resp = requests.post(“url地址,data=字典,headers=字典)
返回的响应对象常用属性:
text: 响应文本内容
status_code:响应状态码
url:最终的URL字符串
content:返回二进制数据内容
3.定制请求头:发送请求时传递headers关键字参数,参数以字典形式传递