自己建设网站用哪个,网站建设项目公司,html5响应式布局,网站备案查询官网入口查询需求#xff1a;登录古诗文网站#xff0c;账号#xff0b;密码#xff0b;图形验证码
第一#xff1a;自己注册一个账号#xff0b;密码哈 第二#xff1a;图形验证码#xff0c;需要一个打码平台#xff08;充钱#xff0c;超能力power#xff01;#xff09;或…需求登录古诗文网站账号密码图形验证码
第一自己注册一个账号密码哈 第二图形验证码需要一个打码平台充钱超能力power或者tesseract开源包这两个用于自动识别图形验证码哈~ 我用的是超级鹰充了1块有1000积分一次10积分初学者福音hhhhh 在软件ID随便填一下软件名称和说明获取软件key 然后点击首页首页的菜单栏处有个开发文档来到这个页面然后找到python的Demoget一个压缩包~ 压缩包里有一个chaojiying.py把它复制到自己的项目里~ 第三开始码
1. 调用chaojiying.py
把Chaojiying_Client中的三个参数替换成自己的即可其中filePath是后续保存下来的验证码图片的路径~
from chaojiying import Chaojiying_Clientdef getCode(filePath):c Chaojiying_Client(超级鹰的账号, 超级鹰的密码, 软件Key)im open(filePath, rb).read()return c.PostPic(im, 1902)[pic_str]2. 获取验证码还没到登录那一步哈
headers {User-Agent: xxx
}
url https://so.gushiwen.cn/user/login.aspx?fromhttp://so.gushiwen.cn/user/collect.aspx
# 发送请求
page_text requests.get(urlurl, headersheaders).text
# 获取页面源码
page_tree etree.HTML(page_text)
# 获取验证码路径及验证码本体
# 通过page_tree.xpath(//*[idimgCode]/src)[0]可以获取验证码img标签中的src属性即验证码的路径
# 但验证码真实路径如下~
img_src https://so.gushiwen.cn page_tree.xpath(//*[idimgCode]/src)[0]
img_data session.get(urlimg_src, headersheaders).content
# 将验证码保存至同级code.jpg
with open(./code.jpg, wb) as f:f.write(img_data)
# 调用超级鹰获取code
code getCode(./code.jpg)在浏览器按下F12可以看到页面的源码信息找到验证码对应的盒子可以看到其src属性。img标签右键copy-copy xpath即可得到验证码路径拼接在官网地址后就是代码中的img_src啦 至于xpath是啥其实还没有学到那里当当好在学习xpath的时候突然想打通一套登录流程但大概理解xpath就是可以动态获取某个标签或元素属性的东西叭超小声
3. 实战登录
在官网登录之后打开开发者工具f12找到如图所示的Payload这就是访问登陆后的页面时的请求参数共7个其中只有__VIEWSTATE、__VIEWSTATEGENERATOR和code是动态变化的碎碎念一开始不知道__VIEWSTATE和__VIEWSTATEGENERATOR是啥导致发送请求一直提示错误大哭出声 现在code已经有了那__VIEWSTATE和__VIEWSTATEGENERATOR咋获取嘞 老规矩获取这两玩应的xpath路径 还是在源代码中找到这两然后右键copy-copy xpath 完整代码如下
import re, os
import requests
from lxml import etreefrom chaojiying import Chaojiying_Clientdef getCode(filePath):c Chaojiying_Client(超级鹰的账号, 超级鹰的密码, 软件Key)im open(filePath, rb).read()return c.PostPic(im, 1902)[pic_str]获取验证码if __name__ __main__:session requests.Session()headers {User-Agent: xxx}url https://so.gushiwen.cn/user/login.aspx?fromhttp://so.gushiwen.cn/user/collect.aspx# 先获取验证码page_text requests.get(urlurl, headersheaders).textpage_tree etree.HTML(page_text)# 获取__VIEWSTATE和__VIEWSTATEGENERATORviewstate page_tree.xpath(//*[id__VIEWSTATE])[0]viewagent page_tree.xpath(//*[id__VIEWSTATEGENERATOR])[0]img_src https://so.gushiwen.cn page_tree.xpath(//*[idimgCode]/src)[0]img_data session.get(urlimg_src, headersheaders).contentwith open(./code.jpg, wb) as f:f.write(img_data)# f.close()code getCode(./code.jpg)print(code)# os.remove(code.jpg)params {__VIEWSTATE: viewstate,__VIEWSTATEGENERATOR: viewagent,from: http://so.gushiwen.cn/user/collect.aspx,email: xxx,pwd: xxx,code: code,denglu: 登录}page_text session.post(urlurl, dataparams, headersheaders).textwith open(./gushi.html, w, encodingutf-8) as f:f.write(page_text)总结生活越来越有判头了nie