zoukankan      html  css  js  c++  java
  • Scrapy-Redis分布式爬虫常规操作

    一、X-path 的常规用法
    1、/是从根节点选取,有顺序
    2、//从当前节点选择文档中的节点,无顺序
    3、.选取当前节点
    4、..选取当前节点的父节点
    5、@选取属性
    6、 //div[@class='doclist']/a
    选择class属性为doclist的div标签下的所有a的标签。
    a[1]是选择第一个,a[last()]是选择最后一个。
    a[possition()<=3]是选择前3个a标签
    7、//ul[@class= "b_listul"]/li[2]/following-sibling::ul[1]
    选择ul/li[2]标签的同级第一个ul标签;
    preceding-silbling::li[1]是选择ul标签之前的。
    8、//book/title | //book/price
    选取book标签下咋所有title和price标签。
    9、//div[@class = 'doclist']/a/text()
    选择a标签的文本内容。
    a/@href是选择a标签的href属性内容。
    10、string(//ul[@class = "b_listul"])
    取//ul[@class = "b_listul"]标签下的所有文本内容。
    ----------------------------------------------------------------------
    二、redis的相关命令
    1、keys aa*
    查看所有的以aa开始的redis_key
    2、flushdb
    清空redis数据库,即清空所有的redis_key
    3、redis 中存在两种数据格式 (key 指向的value是一个集合list/set)
    (1)、list集合,value是以list集合存在,特点是有序,可以重复
    如 lpush name age 将name作为key, age作为value存入list集合中的最左边(即list中第一位)
    rpush name age 将name作为key, age作为value存入list集合中的最右边(即list中最后一位)
    如 lrange name 0 10 查看key=name 指向的value集合中,下标从第0位-第10位(前10个)元素中,key=name 的value值
    没有rrange
    如 llen key_name 查看key_name中value存在的个数
    (2)、set集合,value是以set集合存在特点是无序,去重
    如 sadd name age ,将name作为key, age作为value存入set集合中
    如 scard key_name 查看key_name中value存在的个数
    4、del key_name
    删除某个key,对应的value也会被删除
    5、rename old_key_name new_key_name
    重新命名key_name
    ----------------------------------------------------------------------
    三、MongoDB常用命令(这里要看个人的习惯,平时采集到的数据我都放在了MongoDB里)
    1、show collections
    查看所有的集合(表)
    2、db.tb_name.findOne()
    查看tb_name表中的一条数据
    3、db.tb_name.find().pretty().limit(100)
    查看100条数据,并美化输出结果
    4、db.tb_name.find({'doctor_name':'叶定伟'})
    查看医生姓名为叶定伟的所有数据
    5、db.tb_name.count()
    查看tb_name表的数据量
    6、db.tb_name.drop()
    删除tb_name表
    7、db.tb_name.remove({consult_time:/天/})
    删除tb_name表中,字段consult_time中包括"天"的数据(这里是模糊匹配)
    8、db.tb_name.find().
    forEach(function(x){
    db.new_tb.insert(x);
    })
    将tb_name表中的数据备份到new_tb表中
    9、db.table_name.update({}, {$rename:{"旧键名称":"新键名称"}}, false, true)
      参数提醒:
      第一个false表示:"如果不存在update的记录";(可以换成)true为插入新的记录,默认是false,不插入。
      第二个true表示:mongodb默认是false,只更新找到的第一天记录;如果这个参数是true,就把按条件查出来的多条记录全部更新
    10、db.旧表名.renameCollection('新表名')
      修改表名称
    ----------------------------------------------------------------------
    四、小结
    1、strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
    2、.extract() 返回一个list(就是系统自带的那个) 里面是一些你提取的内容
  • 相关阅读:
    牛客-小V和gcd树
    CF-Codeforces Round #639 (Div. 2)-D-Monopole Magnets
    牛客-牛牛染颜色
    CF-637
    提高办公效率——快捷键
    FusionComputer虚拟机克隆后出现网卡服务重启失败解决办法
    centos7.5mini中Firewalld端口不通解决办法及想法
    FusionConputer热迁移过程记录
    Java集合框架之Iterable接口
    初识Java集合框架
  • 原文地址:https://www.cnblogs.com/beiyi888/p/10444771.html
Copyright © 2011-2022 走看看