一、验证码识别
步骤:
- 图片下载到本地
- 调用包,识别图片
网站:超级鹰 超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大
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