spider_study 1

find findall select

  1. find_all(tag, attributes, recursive, text,limit, keywords)
  2. find(tag,attributes,recursive,text,keywords)
    • tag 标签
    • attributes 属性
    • recursive 是否查找下面的子层
    • text 内容
    • keywords 关键字
    • limit 搜集几条数据
  3. select

robots协议,白帽子。

  1. can_fetch(spider, url)

爬虫流程

  1. 数据采集 采集列表/已采集列表
    • urllib / requests / aiohttp 下载数据
  2. 数据处理 正则/bs4/lxml/
    • re / lxml / bs4 / pyquery
  3. (序列化 压缩数据)数据存储 mysql/redis/
    • pymysql / redis / sqlalchemy / peewee / pymong
  4. 调度器 - 进程/ 线程/ 协程

代理 –隐藏自己的身份

解码 –decode(utf-8/ gbk / gb2312)

事务的四大特性acid

  1. 原子性 Atomicity 要么全部成功,要么全部回滚
  2. 一致性 Consistency 状态一致
  3. 隔离性 Isolation 并发事件相互隔离
  4. 持久性 Durability 永久性

隔离的四大级别

  1. uncommitted read 读未提交 - Dirty Read
  2. read committed - Unrepeatable Read 不可重复读
  3. repeatable read - Phantom Read 幻读
  4. serializable 没有并发
    • 级别越低,并发越好; 级别越高,并发越差;可以动态更改,根据公司需求
    • 事务隔离级别,可以降低对数据库表的锁的使用,它自己帮我们设置一定的锁。

几种表的区别,与什么时候使用

  1. mongdb 适合存储结构不严谨,体积庞大,价值廉价,存放爬虫数据。
  2. redis 保存高速缓存,重要的数据

数据的压缩

  1. 序列化数据,反序列化
    • 序列化: 把对象变成字符或字节序列
    • 反序列化: 把字符或字节序列还原成对象
  2. 工具
    • 字符(str) json dump / dumps / loads / load
    • 字节(byte) pickle 用法同json.
  3. 压缩, zlib
    • 使用方法 compress.compress

压缩

  • zlib.compress(pickle.dumps(content))

解压缩

  • import zlib, pickle
  • pickle.loads(zlib.decompress(client.get(content)))

requests 的使用 requests 官方文档详情

  1. get post 请求的发送
  2. URL参数和请求头
  3. 复杂的POST请求
  4. 操作cookie
  5. 设置代理服务器
  6. 设置超时

习题

  1. 用户代理
  2. 请求头

BeautifulSoup4 的使用

  • bs_obj = Beautifulsoup(html, ‘lxml’)
    1. 拿标签 bs_obj.p
    2. 拿标签属性 bs_obj.attrs[‘href’]
    3. 拿标签内容
  • bs_obj.text 纯文本 str
  • bs_obj.contents 列表 list,一节一节的。
    1. 子 父 兄 节点
    2. find_all/ find 配合正则
  • find_all(
    1. select css属性
  • select(‘a[href]’)

afternoon

url摘要

  • md5 sha1哈希码
  • 同一个东西的哈希码,怎么算都是一样的。

hashlib

种类 md5 sha1 sha256 sha512, 用法一样,差别在于安全程度

  • from hashlib from md5
  • hasher = md5()
  • hasher.update(”.encode(‘utf-8’))
  • hasher.hexdigest()

redis 常用于高速缓存,区别于关系型数据库

  1. redis配置。
    • bind (ifconfig)
    • port
    • require password
    • 两种持久化方案 实际中,两种都打开使用。
      1. RDB
      2. AOF append only file
    • 配置方法
      1. appendonly yes
      2. (597)
    • rdbcompress
    • rdbchecksum yes 校验
    • replication
      2.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值