python爬虫笔记-day4

验证码的识别
url不变,验证码不变
请求验证码的地址,获得相应,识别

url不变,验证码会变
思路:对方服务器返回验证码的时候,会和每个用户的信息和验证码进行一个对应,之后,在用户发送post请求的时候,会对比post请求中法的验证码和当前用户真正的存储在服务器端的验证码是否相同
1.实例化session
2.使用seesion请求登录页面,获取验证码的地址
3.使用session请求验证码,识别
4.使用session发送post请求’

使用selenium登录,遇到验证码
url不变,验证码不变,同上
url不变,验证码会变
1.selenium请求登录页面,同时拿到验证码的地址
2.获取登录页面中driver中的cookie,交给requests模块发送验证码的请求,识别
3.输入验证码,点击登录

selenium使用的注意点
获取文本和获取属性
先定位到元素,然后调用.text或者get_attribute方法来去

selenium获取的页面数据是浏览器中elements的内容
find_element和find_elements的区别
find_element返回一个element,如果没有会报错
find_elements返回一个列表,没有就是空列表
在判断是否有下一页的时候,使用find_elements来根据结果的列表长度来判断

如果页面中含有iframe、frame,需要先调用driver.switch_to.frame的方法切换到frame中才能定位元素
selenium请求第一页的时候回等待页面加载完了之后在获取数据,但是在点击翻页之后,hi直接获取数据,此时可能会报错,因为数据还没有加载出来,需要time.sleep(3)
selenium中find_element_by_class_name智能接收一个class对应的一个值,不能传入多个

db.stu.aggregate({$group:{_id:"$name",counter:{$sum:2}}})

db.stu.aggregate({$group:{_id:null,counter:{$sum:1}}})
db.stu.aggregate({$group:{_id:"$gender",name:{$push:"$name"}}})
db.stu.aggregate({$group:{_id:"$gender",name:{$push:"$$ROOT"}}})
db.tv3.aggregate(
  {$group:{_id:{"country":"$country",province:"$province",userid:"$userid"}}},
  {$group:{_id:{country:"$_id.country",province:"$_id.province"},count:{$sum:1}}},
  {$project:{country:"$_id.country",province:"$_id.province",count:"$count",_id:0}}
  )
db.stu.aggregate(

  {$match:{age:{$gt:20}}},
  {$group:{_id:"$gender",count:{$sum:1}}}
  )
db.t2.aggregate(
  {$unwind:"$size"}
  )
db.t3.aggregate(
  {$unwind:"$tags"},
  {$group:{_id:null,count:{$sum:1}}}
  )
db.t3.aggregate(
  {$unwind:{path:"$size",preserveNullAndEmptyArrays:true}}
  )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值