爬虫基础02(存入数据库)

数据的分类

结构化数据
特点:有固定的格式,如:HTML XML JSON

非结构化数据
如:图片 视频,这类数据一般存储为二进制

贪婪匹配和非贪婪匹配

.*: 贪婪匹配,在整个表达式匹配成功的前提下,尽可能多的去匹配
.*?: 非贪婪匹配,在整个表达式匹配成功的前提下,尽可能少的去匹配

正则表达式分组(findall())
import re 
s = "A B C D"
p1 = re.compile('\w+\s+\w+')
print(p1.findall(s))
# 第1步 : 匹配整体正则['A B', 'C D']
# 第2步 : 匹配分组内容['A','C']
p2 = re.compile('(\w+)\s+\w+')
print(p2.findall(s))
# 第1步 : 匹配整体正则['A B']
# 第2步 : [('A','B')]
p3 = re.compile('(\w+)\s+(\w+)')
print(p3.findall(s))
爬取内涵段子脑筋急转弯
# 网址: www.neihan8.com
# 步骤: 
'''1.URL规律 
第一页:https://www.neihan8.com/njjzw/
第2页:https://www.neihan8.com/njjzw/index_2.html
2.用正则匹配内容 
3.保存'''
csv模块使用流程
1. 打开csv文件
     with open("测试.csv","w",newline="",encoding="gb18030") as f:
2. 初始化写入对象
     writer = csv.writer(f)
3. 写入数据
     writer.writerow(['韩晓凯',23])
数据持久化存储(mongodb)

pymongo基本命令

ubuntu 系统下执行
mongo 回车:进入MongoDB
show databases:显示所有的库
use film: 创建并使用 film 库
show collections: 查看所有的集合
db.t1.find().pretty(): 查看t1表中所有的数据

Anaconda安装其他包的命令
首先以管理员身份去打开 Anaconda Prompt 终端,
然后执行conda install pymongo

远程存入MySQL数据库
1. 开启远程连接,
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉: # bind-address=127.0.0.1
改完之后重启mysql服务
2. 添加授权用户
mysql> grant all privileges on *.* to "用户名"@"%" identified by "123456" with grant option;
3. 关闭防火墙 
sudo ufw disable
或者将第3步改为给防火墙添加规则
3. 添加规则允许外部访问3306端口
sudo ufw allow 3306
Ubuntu中防火墙(ufw)基本操作
  1. 打开 : sudo ufw enable
  2. 关闭 : sudo ufw disable
  3. 添加规则 : sudo ufw allow 端口号

你可能感兴趣的:(爬虫基础02(存入数据库))