利用xlwt、xrld模块进行xls文件读写
xlwt、xlrd行列号从0开始,使用write() 写操作
pip install xlwt/pip install xlrd
import xlwt
import random
# 创建文件
wb = xlwt.Workbook()
# 创建工作表
sheet1 = wb.add_sheet('一年级一班成绩')
# 写入数据
names =['张飞','刘备','关羽','貂蝉','曹操']
for i in range(len(names)):
sheet1.write(i, 0, names[i])
for j in range(1,4):
# 工作表.write(row,col,content)
sheet1.write(i,j,random.randint(0,100))
# 保存
wb.save('一年级成绩表.xls')
# 打开文件
wb = xlrd.open_workbook('一年级成绩表.xls')
# 选择工作表
# sheet_names() --> 查看存在的所有工作表
# sheet_by_index()--()工作表页数
# sheet_by_namse()--()工作表名称
ws = wb.sheet_by_index(0)
ws1 = wb.sheet_by_namse('一年级一班成绩')
print(ws1.cell(0,0).value) # 输出对应坐标单元格内容
# 获取行列数
# nrows:获取最大行数
# ncols:获取最大列数
爬虫
爬虫:网络数据采集,自定义编写规则,批量爬取数据
爬虫的流程:
1.解析HTML页面
2.根据前端的语法或者正则表达式提取数据。
3.保存数据
requests:通过网址向服务器发送请求,等待服务器相应结果,根据结果进行相关操作、
response = requests.get(url=目标网址)
status_code:状态码 – >判断服务器和网页的状态:
200:正常通信
403:拒绝爬虫请求,存在反爬虫机制
404:网页丢失
500:服务器崩溃
如果网页发生乱码,根据页面指定编码方式进行解码即可
requests默认使用ISO-8859-1的编码(ASCII码)
使用charset查找网页使用的编码
text:页面源代码(字符串类型)
content:页面源代码(二进制形式) 常用于图片、音频、视频的爬取
# 图片下载
import requests
URL='目标路径'
response = requests.get(url=URL)
if response.status_code == 200:
photo = open('保存文件地址','wb')
photo.write(response.content)
photo.close()
else:
print(f'状态码:{response.status_code}')
**BeauitifulSoup4模块 **
BeauitfulSoup4-根据相应结果解析页面,提取数据
安装模块的时候输入from bs4 import BeautifulSoup
bs4模块能从html或者xml中提取数据
headers给爬虫提供伪装,使其能够顺利访问目标服务器
headers={} —>headers是一个字典:{key:value}
User-Agent查找:检查目标网站-网络-所有-name-选择第一个-head-下拉到最后
BeautifulSoup(网页源代码,解析器)–能够将字符串类型的源代码转换为bs4类型
bs4模块提供了一系列的提取数据的方法,这些方法的操作对象为bs4类型的数据
将字符串类型转为bs4类型:
soup = BeautifulSoup(response.text,‘html.paser’) html.paser为py内置解码器
bs4模块提供的提取数据方法:
select:根据CSS选择器(标签、class、id等)定位数据。得到符合这个选择器的所有结果,结果整体为列表,其中的元素是bs4类型数据
select_one:根据CSS选择器(标签、class、id等)定位数据。得到符合这个选择器的一个结果,结果是bs4类型数据
text:从得到的bs4类型数据中提取标签内的内容,结果为字符串形式
attris:从得到的bs4类型数据中提取标签的属性值,结果为字符串形式
# 爬取中新网的新闻
import requests
from bs4 import BeautifluSoup
# 选择爬取的范围
for page in range(1,11):
print(f'第{page}页')
URL = f'https://www.chinanews.com.cn/scroll-news/news{page}.html'
Headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0'
}
response = requests.get(url=URL)
if response.status_code == 200 : # 如果通信正常
response.enconding = 'utf-8' # 调整编码格式
soup = BeautifulSoup(response.text,'html.paser') # 将字符串结果转为bs4类型数据
li_list=soup.select(
'body>div.w1280.mt20>div.content-left>div.content_list>ul>li') # 找到对应的位置
# print(li_list)
for i in li_list:
# print(i)
# 去掉空值,不去掉空值,后面要报错
if i.select_one('li>div.dd_lm>a') !=None:
news_type=i.select_one('li>div.dd_lm>a').text
# print(news_type)
news_title= i.select_one('li>div.dd_bt>a').text
# print(news_title)
news_herf ='https://www.chinanews.com.cn'+i.select_one('li>div.dd_bt>a').attrs['href']
# 加上本来网站网址,字符串形式
# print(news_herf)
news_time= i.select_one('li>div.dd_time').text
# print(news_time)
print(news_type,news_title,news_herf,news_time)
前端基础知识
HTML文件理解为是一个html标签,html标签内包含了head标签和body标签
head标签存放页面部分配置项,body标签显示页面内容
html标签分为双标签(一般标签)、单标签(自闭合标签)
双标签:<标签名 属性1=属性值1 属性2=属性值2…>标签和内容标签名>
单标签:<标签名 属性1=属性值1 属性2=属性值2…>或者
<标签名 属性1=属性值1 属性2=属性值2…/>
属性=属性值 ->固定写法,用于修改标签内容和样式
CSS边框以及文字属性调整
选择器的优先级
第一级:属性后面加!important
第二级:内联样式
第三级:看权重
通配符选择器-1
标签选择器-1
class选择器-2
id选择器-4
父子、后代、兄弟、相邻兄弟选择器-看符号之间各个选择器的权重和,先比较前面符号、。
伪类选择器
伪类选择器是选择的标签在不同场景下的某个状态
普通标签的状态:悬停,点击,激活
hover-悬停 ,active-点击
标准流布局
1.标准流布局:没有设置任何布局样式,使用标签自己的特性
a.块级布局标签:一个标签占一行:h1~h6、p标签等等
b.行内标签:1行多个标签,设置宽高无效:a标签,span标签
c.行内块标签:1行多个标签,设置宽高有效:img标签,input标签
2.display
3.脱流
a.浮动和定位
浮动:float 让竖着的页面,横着显示
定位:设置一个标签到参考对象上下左右的间距
position属性:选定参考对象
absolute:绝对定位-存在元素,不占据位置
relative:相对定位-存在元素。可以任意移动,原位置不被占据
fixed:固定定位-不占空间,不受盒子大小影响,用于返回顶部,联系咨询窗口



