def
getCode(codeImg):
username
=
'bobo328410948'
password
=
'bobo328410948'
appid
=
6003
appkey
=
'1f4b564483ae5c907a1d34f8e2f2776c'
filename
=
codeImg
codetype
=
3000
timeout
=
20
if
(username
=
=
'username'
):
print
(
'请设置好相关参数再测试'
)
else
:
yundama
=
YDMHttp(username, password, appid, appkey)
uid
=
yundama.login();
print
(
'uid: %s'
%
uid)
balance
=
yundama.balance();
print
(
'balance: %s'
%
balance)
cid, result
=
yundama.decode(filename, codetype, timeout);
print
(
'cid: %s, result: %s'
%
(cid, result))
return
result
import
requests
from
lxml
import
etree
import
json
import
time
import
re
url
=
'https://www.douban.com/accounts/login?source=movie'
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Mobile Safari/537.36'
}
page_text
=
requests.get(url
=
url,headers
=
headers).text
tree
=
etree.HTML(page_text)
codeImg_url
=
tree.xpath(
'//*[@id="captcha_image"]/@src'
)[
0
]
code_img
=
requests.get(url
=
codeImg_url,headers
=
headers).content
'<img id="captcha_image" src="https://www.douban.com/misc/captcha?id=AdC4WXGyiRuVJrP9q15mqIrt:en&size=s" alt="captcha" class="captcha_image">'
c_id
=
re.findall(
'<img id="captcha_image".*?id=(.*?)&.*?>'
,page_text,re.S)[
0
]
with
open
(
'./code.png'
,
'wb'
) as fp:
fp.write(code_img)
codeText
=
getCode(
'./code.png'
)
print
(codeText)
post
=
'https://accounts.douban.com/login'
data
=
{
"source"
:
"movie"
,
"redir"
:
"https://movie.douban.com/"
,
"form_email"
:
"15027900535"
,
"form_password"
:
"bobo@15027900535"
,
"captcha-solution"
:codeText,
"captcha-id"
:c_id,
"login"
:
"登录"
,
}
print
(c_id)
login_text
=
requests.post(url
=
post,data
=
data,headers
=
headers).text
with
open
(
'./login.html'
,
'w'
,encoding
=
'utf-8'
) as fp:
fp.write(login_text)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构