【爬虫3】——模拟登录流程

一、验证码识别

步骤:

  1. 图片下载到本地
  2. 调用包,识别图片

网站:超级鹰  超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大

from lxml import etree
import requests
# from 文件名(路径)import 类名
from 超级鹰.chaojiying_Python.chaojiying import Chaojiying_Client

url="https://so.gushiwen.cn/user/login.aspx"
headers = {
    # "User_Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
response=requests.get(url=url,headers=headers)
print(response)
html=response.text

tree=etree.HTML(html,etree.HTMLParser(encoding='utf-8'))
# tree=etree.parse('./gushi.html',etree.HTMLParser(encoding='utf-8'))


# src=tree.xpath('//img[@id="imgCode"]/@src')[0]
# 鼠标右键复制 该元素的xpath
src=tree.xpath('//*[@id="imgCode"]/@src')[0]

# https://so.gushiwen.cn/RandCode.ashx
img_url="https://so.gushiwen.cn"+src


# 1.验证码图片下载到本地
response2=requests.get(url=img_url,headers=headers)
print(response2)
content=response2.content
with open('./yan.jpg','wb') as fp:
    fp.write(content)


# 2.调用打码平台的示例程序,进行验证码识别
chaojiying = Chaojiying_Client('账户', '密码', 'id')	#用户中心>>软件ID 生成一个替换 96001
im = open('./yan.jpg', 'rb').read()													#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//

print (chaojiying.PostPic(im, 1004)		)
code=chaojiying.PostPic(im, 1004)['pic_str']
print(code)

二、登录人人网

三、cookie操作

http/https协议的无状态特性
需求:爬取当前用户的相关信息  个人主页
处理cookie
      1.手动处理:将该值封装到header中
      2.自动处理:
          cookie来源:模拟登录post请求后,由服务器创建
          log抓包工具中 response Header中的Set-Cookie
 所以,使用session会话对象
     作用:
       1.进行请求的发送
       2.若请求过程中产生cookie,则该cookie会被自动携带在session对象中


四、代理

爬虫(访问)次数过多,超过服务器的阈值,直接拒绝我的请求
代理:
    反反爬,破解IP这种反爬机制
    作用:
       1.破自身IP访问的限制
       2.隐藏自身IP

          代理类型:http  https

      

你可能感兴趣的:(爬虫,爬虫)