request-html 和 css选择器

css选择器

1、类选择器

  .类名

2、id选择器

  #id值

3、标签选择器

  标签名

4、后代选择器

  选择器1 选择器2

5、子选择器

  选择器1>选择器2

6、属性选择器

  【属性名】 【name】

  【属性名=值】 【name=‘title’】

  【属性名^=值】 属性以。。开头

  【属性名$=值】 结尾

  【属性名*=值】 包含

7、群组选择器

  选择器1,选择器2 or

8、多条件选择器

  选择器1选择器2 and

  p【属性=值】

 

request-html的牛逼之处:它集成了request库,beautifulsoup库,pyquery库,浏览器内核

 

安装

 pip install requests-html

 

请求

  from requests_html import HTMLSession

  ​ session = HTMLSession()

​ **参数:**

  ​ browser.args = [

  ​ '--no-sand',

  ​ '--user-agent=XXXXX'

  ​ ]

  ​ 响应对象 = session.request(......)

  ​ 响应对象 = session.get(......)

  ​ 响应对象 = session.post(......)

 

参数和requests模块一样

 

 响应

r.url

**属性和requests模块一样

 

 解析

html对象属性

r.html.absolute_links 绝对路径 基础路径 + /d/ffdsadfsadas.jpg

  • ​ .links 相对路径
  • ​ .base_url 基础路径
  • ​ .html 拿到页面内容 (相当于r.text) 渲染之后的内容 而text是页面的文本
  • ​ .text 拿到页面上纯文本
  • ​ .encoding = 'gbk'
  • ​ .raw_html 相当于r.context
  • ​ .qp

html对象方法

r.html.find('css选择器') 【element对象,element对象,】

  • ​ .find('css选择器',first = True) element对象
  • ​ .xpath(‘xpath选择器’)
  • ​ .xpath('‘xpath选择器',first = True)
  • ​ .search(‘模板’) search对象
  • ​ (‘xxx{}yyy{}’)[0]
  • ​ (‘xxx{name}yyy{pwd}’)[‘name’]
  • ​ .search_all('模板') 【search对象。search对象】
  • ​ .render(.....)

  ​ **参数:**

  • ​ scripy:“”“ ( ) => {

    ​ js代码

​     js代码

    ​ }”“”

  • ​ scrolldow:n
  • ​ sleep:n
  • ​ keep_page:True/False

 

 与浏览器交互   :  r.html.page.XXX

asynic def xxx():

  • ​ await r.html.page.XXX
  • ​ session.loop.run....(xxx())
  • ​ .screenshot({'path':路径})
  • ​ .evaluate('''() =>{js代码}’‘’})
  • ​ .cookies()
  • ​ .type('css选择器',’内容‘,{’delay‘:100})
  • ​ .click('css选择器')
  • ​ .focus('css选择器')
  • ​ .hover('css选择器')
  • ​ .waitForSelector('css选择器')
  • ​ .waitFor(1000)

 

键盘事件 r.html.page.keyboard.XXX

  • .down('Shift')
  • ​ .up('Shift')
  • ​ .press('ArrowLeft')
  • ​ .type('喜欢你啊',{‘delay’:100})

 

鼠标事件 r.html.page.mouse.XXX

.click(x,y,{
  'button':'left',
  'click':1
  'delay':0
})
.down({'button':'left'})
.up({'button':'left'})
.move(x,y,{'steps':1})

 

常用数据库

下载:https://www.mongodb.com/

注意:使用前修改bin目录下配置文件mongodb.cfg,删除最后一行的'mp'字段

####1. 启动服务与终止服务

net start mongodb

net stop mongodb

2.创建管理员用户

mongo

use admin

db.createUser({user:"yxp",pwd:"997997",roles:["root"]})

3.使用账户密码连接mongodb

mongo -u adminUserName -p userPassword --authenticationDatabase admin

4.数据库

查看数据库
show dbs 查看数据库
切换数据库
use db_name 切换数据库
增加数据库
db.table1.insert({'a':1})  创建数据库(切换到数据库插入表及数据)
删除数据库
db.dropDatabase()  删数据库(删前要切换)

5.表

使用前先切换数据库
查看表
show tables 查所有的表
增加表
db.table1.insert({'b':2})  增加表(表不存在就创建)
删除表
db.table1.drop()    删表

数据

db.test.insert(user0)    插入一条
db.user.insertMany([user1,user2,user3,user4,user5])   插入多条
db.user.find({'name':'alex'})   查xx==xx
db.user.find({'name':{"$ne":'alex'}})   查xx!=xx
db.user.find({'_id':{'$gt':2}})   查xx>xx
db.user.find({"_id":{"$gte":2,}}) 查xx>=xx
db.user.find({'_id':{'$lt':3}}) 查xx<xx
db.user.find({"_id":{"$lte":2}}) 查xx<=xx
db.user.update({'_id':2},{"$set":{"name":"WXX",}})   改数据
db.user.deleteOne({ 'age': 8 })   删第一个匹配
db.user.deleteMany( {'addr.country': 'China'} ) 删全部匹配
db.user.deleteMany({}) 删所有

pymongo

conn = pymongo.MongoClient(host=host,port=port, username=username, password=password)
db = client["db_name"] 切换数据库
table = db['表名']
table.insert({}) 插入数据
table.remove({})   删除数据
table.update({'_id':2},{"$set":{"name":"WXX",}})   改数据
table.find({}) 查数据

 

 

 

 

posted @ 2019-11-10 19:04  vic_sky  阅读(1059)  评论(0编辑  收藏  举报