第一天注册,记录每天学到的小知识

计划把每天学到的小知识记录下来,就这样吧

matlab:

如何加载.mat文件转换为矩阵形式

S1 = load('IntBP1.mat');

BP1 = struct2cell(S1);

Mymat1 = cell2mat(BP1);

save Mymat1.mat Mymat1 -MAT

Mymat1就是矩阵形式了(S1是Struct Array 形式)。

  cell:创建空的元胞数组

  cellfun:为元胞数组的每个元胞执行指定的函数

  celldisp:显示所有元胞的内容

  cellplot:利用图形方式显示元胞数组

  cell2mat:将元胞数组转变成为普通的矩阵

  mat2cell:将数值矩阵转变成为元胞数组

  num2cell:将数值数组转变成为元胞数组

  deal:将输入参数赋值给输出

  cell2struct:将元胞数组转变成为结构

  struct2cell:将结构转变为元胞数组

  iscell:判断输入是否为元胞数组

爬虫:

    如果爬取的是动态信息,比如需要加载,翻页等的信息,在Network中找对应的进行爬取,利用requests,bs4,json等库;如果爬取的是静态信息,如小说图片,则在Element中爬取,利用requests,bs4等库。

    动态信息用requests.get爬到后得用json()方法将response对象变为列表/字典对象,再用取字典中的值的方法取出想要的信息。

    requests库用来取得网址内容,返回response对象,可以用text方法提取到文字内容,也可以用content提取到二进制文件,如图片,音乐。

r.status_code #响应状态码

r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取

r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩

r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

特殊方法#

r.json() #Requests中内置的JSON解码器

r.raise_for_status() #失败请求(非200响应)抛出异常

    bs4.BeautifulSoup可以用来解析requests.get得到的网址,虽然和.text方法print出的内容看似一样,但他们的类不同,分别为
import requests
from bs4 import BeautifulSoup
#引入BS库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html') 
html = res.text
soup = BeautifulSoup(html,'html.parser') #把网页解析为BeautifulSoup对象,BeautifulSoup中的第0个元素必须是字符串类型,第1个元素是解析器

一个常用的headers


headers={'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}

res=requests.get(url,headers=headers)

你可能感兴趣的:(第一天注册,记录每天学到的小知识)