? 安装:pip install requests
? 使用:
? 请求:
? ①get请求:
响应对象 = requests.get(......)
? **参数:**
? url:
? headers = {}
? cookies = {}
? params = {}
? proxies = {'http':‘http://端口:ip’}
? timeout = 0.5
? allow_redirects = False
? ②post请求:
响应对象 = requests.post(......)
? **参数:**
? url:
? headers = {}
? cookies = {}
? data = {}
? json = {}
? files = {‘file’:open(...,‘rb’)}
? timeout = 0.5
? allow_redirects = False
? 自动保存cookie的请求:
session = requests.session()
? r = session.get(......)
? r = session.post(......)
补充:(保存cookie到本地)
import http.cookiejar as cookielib
session.cookie = cookielib.LWPCookieJar()
session.cookie.save(filename='1.txt')
session.cookies.load(filename='1.txt')
? 响应:
r.url 获取请求的url
? r.text 获取相应文本信息
? r.encoding = 'gbk'
? r.content 二进制
? r.json() json.loads(r.text)
? r.status_code 响应状态码
? r.headers 相应头
? r.cookies 相应cookie(set——cookie)
? r.history 【相应对象,响应对象。。。】
? 1、类选择器
? .类名
? 2、id选择器
? #id值
? 3、标签选择器
? 标签名
? 4、后代选择器
? 选择器1 选择器2
? 5、子选择器
? 选择器1>选择器2
? 6、属性选择器
? 【属性名】 【name】
? 【属性名=值】 【name=‘title’】
? 【属性名^=值】 属性以。。开头
? 【属性名$=值】 结尾
? 【属性名*=值】 包含
? 7、群组选择器
? 选择器1,选择器2 or
? 8、多条件选择器
? 选择器1选择器2 and
? p【属性=值】
? 略
? 安装: 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 拿到页面上纯文本
? .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
()=>{
Object.defineProperties(navigator,{
webdriver:{
get: () => undefined
}
})
? 与浏览器交互 r.html.page.XXX
asynic def xxx():
? await r.html.page.XXX
? session.loop.run....(xxx()) //
? .screenshot({'path':路径}) //截图并放入某一路径
? .evaluate('''() =>{js代码}’‘’})
? .cookies() //获取浏览器的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})
? .
安装:略
注意:使用前修改bin目录下配置文件mongodb.cfg,删除最后一行的‘mp‘字段
net start mongodb
net stop mongodb
mongo
use admin
db.createUser({user:"yxp",pwd:"997997",roles:["root"]})
mongo -u adminUserName -p userPassword --authenticationDatabase admin
show dbs 查看数据库
use db_name 切换数据库
db.table1.insert({'a':1}) 创建数据库(切换到数据库插入表及数据)
db.dropDatabase() 删数据库(删前要切换)
使用前先切换数据库
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({}) 删所有
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({}) 查数据
1.检测浏览器headers
2.ip封禁
3.图片验证码
4.滑动模块
5.js轨迹
6.前端反调试
1.爬校花图片
2.爬豆瓣电影
3.校花电影m3u8
4.爬取天猫
? 反爬虫:使用技术手段防止爬虫程序的方法
? 误伤:反扒技术将普通用户识别为爬虫,如果误伤过高,效果再好也不能用
? 成本:反爬虫需要的人力和机器成本
? 拦截:成功拦截爬虫,一般情况下,拦截率越高,误伤率越高
5.分析腾讯视频url
? 接口:https://p2p.1616jx.com/api/api.php?url=vip视频地址
6.登录知乎
? 保存cookie到本地
7.红薯小说(js注入)
script='''
var span_list = document.getElementsByTagName("span")
for (var i=0;i<span_list.length;i++){
var content = window.getComputedStyle(
span_list[i], ':before'
).getPropertyValue('content');
span_list[i].innerText = content.replace('"',"").replace('"',"");
}
'''
原文:https://www.cnblogs.com/huanghongzheng/p/11507583.html