利用『爬虫』 折衷解决 个人支付宝支付系统 ---- 获取账单信息 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Ehco1996
V2EX    Python

利用『爬虫』 折衷解决 个人支付宝支付系统 ---- 获取账单信息

  •  6
     
  •   Ehco1996 2017-08-15 17:57:07 +08:00 34840 次点击
    这是一个创建于 2983 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个部分主要是账单信息的获取, 文笔和语法可能都有点差,大家包涵

    从零开始写 Python 爬虫 --- 爬虫应用: 获取支付宝账单信息

    最近想给自己的网站接入支付和自动发货系统,踩了一些坑, 其中用到一些爬虫技术,放在这里和大家分享一下。

    支付宝对个人用户太不友好了,自己网站想接入支付宝支付的话,必须要签约, 签约得要营业执照。总之各种蛋疼。这不,我想出了一个「折衷的解决办法」。

    解决思路

    1. 用户通过转账码给支付宝账号转账。
    2. 转账之后提交转账 「流水号」给后台服务器
    3. 后台服务器模拟登录支付宝网页版,查找最近的订单
    4. 比较数据,成功则自动发货

    整个处理流程效率十分低下,但总比我手动发货好那么一点。 再次吐槽坑爹的支付宝,不开放接口!!!

    支付宝账单的查询

    一开始的思路是,通过 POST 数据登录支付宝 web 版。 后来尝试了一下,发现。支付宝关闭了 POST。 想要登录获取信息的话, 那么只剩下一条路了: 通过『 cookies 』登录

    订单查询 v1:

    手动登录支付宝 web 版本, 打开 chrome 开发工具,找到 cookies, 复制出来。

    上述步骤很我们在 爬取螺纹钢数据 这篇文章里已经详细的描述过了, 我就不过多介绍了。

    我就说一个将字符串快速转换为字典类型的技巧

    # 将复制到 cookies 转换为字典,方便调用 raw_cookies = 'JSESSIOnID=RZ13thOM1d 后面省略了,调式的话用自己的 ' cookie = SimpleCookie(raw_cookies) cookies = {i.key: i.value for i in cookie.values()} 

    得到了 cookies,我们就能在登录状态下获取数据了。 主要用到的是: requests 模块的 session 下面就看看 v1 版本的整体代码吧 整体代码:

    ''' 尝试登录支付宝 并获账单记录 ''' import requests from http.cookies import SimpleCookie from bs4 import BeautifulSoup # 自定义 headers HEADERS = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36', 'Referer': 'https://consumeprod.alipay.com/record/advanced.htm', 'Host': 'consumeprod.alipay.com', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Connection': 'keep-alive' } # 将复制到 cookies 转换为字典,方便调用 raw_cookies = 'JSESSIOnID=RZ13thOM1dM5K05460101"; 中间省略了 One=RZ250AATO/mr4CZ1cRnxgFmVR' cookie = SimpleCookie(raw_cookies) cookies = {i.key: i.value for i in cookie.values()} # 尝试使用面向对象的方式来造爬虫 class Alipay_Bill_Info(object): '''支付宝账单信息''' def __init__(self, headers, cookies): ''' 类的初始化 headers:请求头 cookies: 持久化访问 info_list: 存储账单信息的列表 ''' self.headers = headers self.cookies = cookies # 利用 requests 库构造持久化请求 self.session = requests.Session() # 将请求头和 cookies 添加到缓存之中 self.session.headers = self.headers self.session.cookies.update(self.cookies) self.info_list = [] def login_status(self): '''判断登录状态''' status = self.session.get( 'https://consumeprod.alipay.com/record/standard.htm', timeout=5, allow_redirects=False).status_code print(status) if status == 200: return True else: return False def get_data(self): ''' 利用 bs4 库解析 html 并抓取数据, 数据以字典格式保存在列表里 ''' status = self.login_status() url = 'https://consumeprod.alipay.com/record/standard.htm' if status: html = self.session.get(url).text soup = BeautifulSoup(html, 'lxml') # 抓取前五个交易记录 trades = soup.find_all('tr', class_='J-item ')[:5] for trade in trades: # 做一个 try except 避免异常中断 try: # 分别找到账单的 时间 金额 以及流水号 time = trade.find('p', class_='text-muted').text.strip() amount = trade.find( 'span', class_='amount-pay').text.strip() code = trade.find( 'a', class_='J-tradeNo-copy J-tradeNo')['title'] self.info_list.append( dict(time=time, amount=amount, code=code)) except: self.info_list.append({'error': '出现错误,请加站长支付宝好友获取充值码'}) else: self.info_list.append({'error': '出现错误,请加站长支付宝好友获取充值码'}) # 测试一下: test = Alipay_Bill_Info(HEADERS, cookies) test.get_data() print(test.info_list) ''' OUT: 200 [{'time': '07:34', 'amount': '- 3.00', 'code': '2017081521001004100329637047'}, {'time': '07:08', 'amount': '- 100.00', 'code': '2017081521001004100329622812'}, {'time': '05:37', 'amount': '+ 0.14', 'code': '20170815344111650101'}, {'time': '01:08', 'amount': '+ 10.00','code': '20170815200040011100040078948930'}, {'time': '22:23', 'amount': '+ 10.00', 'code': '20170814200040011100060079678223'}] ''' 

    可以看到 我需要的前 5 个订单记录的 时间,流水,金额都已经出来了。 来对比一网页版截图:

    订单查询 V2

    上面那个爬虫虽然实现了爬取账单信息的功能,

    但实际上,完全没有用有没有?

    因为 每次都得我们手动输入 cookies

    那这个爬虫完全没有存在的 意义了!

    当然,这是夸张的说法, 通过上面那个爬虫,我们实践证明了爬取账单的可能性。

    剩下的只需要想办法 自动获取 cookies 就行了!

    如何自动获取 cookies 呢?

    想出的一个比较笨的方法:

    • 通过 selenium 模拟浏览器登录
    • 获取并格式化 cookies
    • 将 cookies 保存到本地,
    • 将 cookies 传给 requests 库调用

    说起来很简单有没有?

    但实际上我整整调试了一个下午才成功啊!!!

    你觉得是为啥呢?

    当然是支付宝坑爹的认证机制:

    • 你输入账号密码的时候不能过快
    • 你输入账号密码的时候不能过慢
    • 你点击找到按钮和点击按钮的间隔不能过大或过小
    • 对 headers 的严格把控
    • ...........

    说多了都是辛酸泪,大家调试的时候,注意点就好。

    下面给出获取 cookies 的代码片段

     def wait_input(self, ele, str): '''减慢账号密码的输入速度''' for i in str: ele.send_keys(i) time.sleep(0.5) def get_cookies(self): '''获取 cookies''' # 初始化浏览器对象 sel = webdriver.PhantomJS() sel.maximize_window() sel.get(Login_Url) sel.implicitly_wait(3) # 找到用户名字输入框 uname = sel.find_element_by_id('J-input-user') uname.clear() print('正在输入账号.....') self.wait_input(uname, self.user) time.sleep(1) # 找到密码输入框 upass = sel.find_element_by_id('password_rsainput') upass.clear() print('正在输入密码....') self.wait_input(upass, self.passwd) # 截图查看 # sel.save_screenshot('1.png') # 找到登录按钮 butten = sel.find_element_by_id('J-login-btn') time.sleep(1) butten.click() # sel.save_screenshot('2.png') print(sel.current_url) # 跳转到账单页面 print('正在跳转页面....') sel.get(Bill_Url) sel.implicitly_wait(3) # sel.save_screenshot('3.png') # 获取 cookies 并转换为字典类型 cookies = sel.get_cookies() cookies_dict = {} for cookie in cookies: if 'name' in cookie and 'value' in cookie: cookies_dict[cookie['name']] = cookie['value'] return cookies_dict # 关闭浏览器 sel.close() def set_cookies(self): '''将获取到的 cookies 加入 session''' c = self.get_cookies() self.session.cookies.update(c) print(self.session.cookies) 

    这个部份主要是利用了 selenuim 模拟 PhanomJS 来模拟浏览器,登录支付宝账号密码 最后获取 cookies,并格式化。

    有详细的注释,详细都能看懂的吧!

    对于浏览器模拟爬虫不熟悉的,可以看我以前写的文章:

    效果图:

    可以看到,我们已经可以完全自动化的查询账单信息了。

    剩下的就是后台支付系统的把编写了, 由于不涉及到爬虫的相关技术 我就不 pull 上来啦~

    最后附上全部代码:

    ''' 尝试登录支付宝 并获取账单记录 通过 seleium 登录支付宝, 获取 cookies ''' import requests from selenium import webdriver from bs4 import BeautifulSoup import time # 登录 url Login_Url = 'https://auth.alipay.com/login/index.htm?goto=https%3A%2F%2Fwww.alipay.com%2F' # 账单 url Bill_Url = 'https://consumeprod.alipay.com/record/standard.htm' # 登录用户名和密码 USERNMAE = '' PASSWD = '' # 自定义 headers HEADERS = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36', 'Referer': 'https://consumeprod.alipay.com/record/advanced.htm', 'Host': 'consumeprod.alipay.com', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Connection': 'keep-alive' } class Alipay_Bill_Info(object): '''支付宝账单信息''' def __init__(self, headers, user, passwd): ''' 类的初始化 headers:请求头 cookies: 持久化访问 info_list: 存储账单信息的列表 ''' self.headers = headers # 初始化用户名和密码 self.user = user self.passwd = passwd # 利用 requests 库构造持久化请求 self.session = requests.Session() # 将请求头添加到缓存之中 self.session.headers = self.headers # 初始化存储列表 self.info_list = [] def wait_input(self, ele, str): '''减慢账号密码的输入速度''' for i in str: ele.send_keys(i) time.sleep(0.5) def get_cookies(self): '''获取 cookies''' # 初始化浏览器对象 sel = webdriver.PhantomJS() sel.maximize_window() sel.get(Login_Url) sel.implicitly_wait(3) # 找到用户名字输入框 uname = sel.find_element_by_id('J-input-user') uname.clear() print('正在输入账号.....') self.wait_input(uname, self.user) time.sleep(1) # 找到密码输入框 upass = sel.find_element_by_id('password_rsainput') upass.clear() print('正在输入密码....') self.wait_input(upass, self.passwd) # 截图查看 # sel.save_screenshot('1.png') # 找到登录按钮 butten = sel.find_element_by_id('J-login-btn') time.sleep(1) butten.click() # sel.save_screenshot('2.png') print(sel.current_url) # 跳转到账单页面 print('正在跳转页面....') sel.get(Bill_Url) sel.implicitly_wait(3) # sel.save_screenshot('3.png') # 获取 cookies 并转换为字典类型 cookies = sel.get_cookies() cookies_dict = {} for cookie in cookies: if 'name' in cookie and 'value' in cookie: cookies_dict[cookie['name']] = cookie['value'] return cookies_dict # 关闭浏览器 sel.close() def set_cookies(self): '''将获取到的 cookies 加入 session''' c = self.get_cookies() self.session.cookies.update(c) print(self.session.cookies) def login_status(self): '''判断登录状态''' # 添加 cookies self.set_cookies() status = self.session.get( Bill_Url, timeout=5, allow_redirects=False).status_code print(status) if status == 200: return True else: return False def get_data(self): ''' 利用 bs4 库解析 html 并抓取数据, 数据以字典格式保存在列表里 ''' status = self.login_status() if status: html = self.session.get(Bill_Url).text soup = BeautifulSoup(html, 'lxml') # 抓取前五个交易记录 trades = soup.find_all('tr', class_='J-item ')[:5] for trade in trades: # 做一个 try except 避免异常中断 try: # 分别找到账单的 时间 金额 以及流水号 time = trade.find('p', class_='text-muted').text.strip() amount = trade.find( 'span', class_='amount-pay').text.strip() code = trade.find( 'a', class_='J-tradeNo-copy J-tradeNo')['title'] self.info_list.append( dict(time=time, amount=amount, code=code)) except: self.info_list.append({'error': '出现错误,请加站长支付宝好友获取充值码'}) else: self.info_list.append({'error': '出现错误,请加站长支付宝好友获取充值码'}) return self.info_list # test: test = Alipay_Bill_Info(HEADERS, USERNMAE, PASSWD) data = test.get_data() print(data) 

    每天的学习记录都会 同步更新到: 微信公众号:findyourownway
    知乎专栏: https://zhuanlan.zhihu.com/Ehco-python
    blog:www.ehcoblog.ml
    Github: https://github.com/Ehco1996/Python-crawler

    79 条回复    2018-07-19 13:49:36 +08:00
    just1
        1
    just1  
       2017-08-15 18:31:28 +08:00 via Android
    什么叫做支付宝关闭了 POST。
    还不是技术不到位
    Ehco1996
        2
    Ehco1996  
    OP
       2017-08-15 18:34:39 +08:00 via iPhone
    @just1
    是的,技术是还不到位

    麻烦你能不能给个 demo 试试 post 登陆?
    6IbA2bj5ip3tK49j
        3
    6IbA2bj5ip3tK49j  
       2017-08-15 18:48:00 +08:00
    你要是之前开了当面付,就不用这么麻烦了。
    ss098
        4
    ss098  
       2017-08-15 19:10:21 +08:00
    厉害,这应该是免签比较好的一个方案了。
    Sanko
        5
    Sanko  
       2017-08-15 19:11:01 +08:00 via Android
    思路不错
    akira
        6
    akira  
       2017-08-15 19:18:10 +08:00
    呃。。淘宝上面现成的系统应该是 30 块左右一套。
    Ehco1996
        7
    Ehco1996  
    OP
      &bsp;2017-08-15 19:18:40 +08:00 via iPhone
    @xgfan

    是的啊啊啊
    错过那一波 心好疼
    Ehco1996
        8
    Ehco1996  
    OP
       2017-08-15 19:19:39 +08:00 via iPhone
    @akira

    请问关键词是什么呢?

    能泡在 linux 服务器上么
    FanWall
        9
    FanWall  
       2017-08-15 19:25:31 +08:00
    现在支付宝的 POST 是相当有难度的(param ua),起码我不大相信 1#能做到[doge]
    楼主这种是业内实现成本最低也是最普遍的解决思路
    mxjmxj929
        10
    mxjmxj929  
       2017-08-15 20:16:54 +08:00
    @Ehco1996 楼主咋解决支付宝安全验证机制的,比如实际浏览器登陆就要二次验证的。
    brucewzp
        11
    brucewzp  
       2017-08-15 20:19:29 +08:00
    实际操作的时候如果太频繁,支付宝会刷验证码出来,而且有时候出现验证码的概率和你的 IP 有很大关系
    akira
        12
    akira  
       2017-08-15 21:22:43 +08:00
    @Ehco1996 以前看到的大部分都是 windows 下的。 刚看了下淘宝,以前的关键字被屏蔽了。你可以试试谷歌关键字“免签约”,里面还是有提到的。
    lzhr
        13
    lzhr  
       2017-08-15 21:29:04 +08:00
    @FanWall #9
    neoblackcap
        14
    neoblackcap  
       2017-08-15 21:50:29 +08:00
    @Ehco1996 小心太快了账号被封,我以前也搞过,实在是太苦逼了。我的方案是用 headless browser,成功率还高那么一点点。楼主可以参考一下。不过支付宝还有风控系统,一旦他们觉得你异常(我是不知道具体的指标了),你的账号就会被封,小心点吧。
    just1
        15
    just1  
       2017-08-15 22:29:22 +08:00 via Android
    @FanWall 我当然做不到我就一吐槽
    sola97
        16
    sola97  
       2017-08-15 23:48:04 +08:00
    感觉不会稳定的
    580a388da131
        17
    580a388da131  
       2017-08-16 03:59:55 +08:00
    不给接入是因为个人备案号不能经营盈利性网站。
    cszeus
        18
    cszeus  
       2017-08-16 05:34:04 +08:00
    如果已经用 selenium 登录了,为什么不用 selenium 一口气搞完?再用 requests 有什么区别么。
    XiaoFaye
        19
    XiaoFaye  
       2017-08-16 06:18:03 +08:00
    请个刚高考完的学生做,当暑假工,一个月下来也没多少钱。
    Ehco1996
        20
    Ehco1996  
    OP
       2017-08-16 06:49:41 +08:00
    @neoblackcap
    好的,我去查查看 谢谢

    @580a388da131
    政策问题

    @cszeus
    用 selenium 获取数据总觉得效率会差一点,当然这也是我的使用习惯。

    @XiaoFaye
    我也还是学生。也没多少钱
    lifeintools
        21
    lifeintools  
       2017-08-16 07:51:48 +08:00
    mark 非常感兴趣 谢谢 lz PS: 其实也可以写 chrome 插件来实现这个功能。
    thundernet8
        22
    thundernet8  
       2017-08-16 08:09:22 +08:00 via iPhone
    我觉得你这个好费劲 实际上支付宝的 cookies 可以持久很长时间有效的 所以我做了这个脚本 https://github.com/thundernet8/AlipayOrdersSupervisor 唯一不好的是隔一段时间换下 cookie
    Jasmine2016
        23
    Jasmine2016  
       2017-08-16 08:41:52 +08:00
    我想吐槽。。。登陆太快和太慢都不行,简直没人权
    qq292382270
        24
    qq292382270  
       2017-08-16 08:48:39 +08:00
    我对个人支付宝的自动付款研究了两年. 已经有两三款很不错的成品,稳定几个月不掉线没问题.另外个人帐号实时数据功能也搞定了...
    ![Markdown]( http://i1.bvimg.com/606162/f78c742a04a38da2.png)
    kikyous
        25
    kikyous  
       2017-08-16 08:53:57 +08:00
    有一种思路是开个淘宝店,出售类似充值卡的东西,然后利用自动发卡平台发送卡号和密码

    然后用户自己充入个人帐号

    就是把支付环节转移到淘宝上面
    est
        26
    est  
       2017-08-16 08:54:21 +08:00
    直接收支付宝的邮件即可。
    youthdou
        27
    youthdou  
       2017-08-16 09:04:22 +08:00
    mark 一下。
    q409195961
        28
    q409195961  
       2017-08-16 09:24:17 +08:00
    楼主写得 666,有些网站也是直接转账,然后输入流水号充值的。

    另:button 不是 butten
    audoe
        29
    audoe  
       2017-08-16 09:24:49 +08:00
    @est 这个思路可以,简单,稳定
    Enivel
        30
    Enivel  
       2017-08-16 09:34:21 +08:00
    楼主的方法,无法处理二次验证吧. 几年前图形验证码好过. 现在改成滑块,但终归也找到合适的方法绕过.
    headless 效率较低其实登录完全可以接口形式完成,登录稳定还可以过二次验证
    yangxin0
        31
    yangxin0  
       2017-08-16 09:40:21 +08:00 via iPhone
    @qq292382270 支付宝不是支持自动付款吗
    734506700qq
        32
    734506700qq  
       2017-08-16 09:47:26 +08:00
    这个想法不错,可以试试
    laoertongzhi
        33
    laoertongzhi  
       2017-08-16 10:01:52 +08:00
    @qq292382270

    能看下你这边提供服务的网站么,很好奇
    Ehco1996
        34
    Ehco1996  
    OP
       2017-08-16 10:16:43 +08:00
    @thundernet8
    原本我也想 做持久化的,可是现在貌似出了啥验证机制,十几分钟 cookie 就挂了。

    @audoe
    @est
    支付宝邮件提醒必须你没有绑定手机号,不然只会再 app 上或者短信提醒。我查到的资料是这样的,一开始我也想通过邮件来检测的

    @LevineChen
    是的 二次验证不行,请问可以分享一下你的方法么

    @qq292382270
    膜拜大佬 能分享一下么
    Enivel
        35
    Enivel  
       2017-08-16 10:18:12 +08:00
    @Ehco1996 我怕分享出来大家都没得用了
    Ehco1996
        36
    Ehco1996  
    OP
       2017-08-16 10:20:18 +08:00 via iPhone
    @LevineChen

    好吧,那还是自己偷偷在地下用好了
    嘿嘿嘿
    Enivel
        37
    Enivel  
       2017-08-16 10:26:42 +08:00
    @Ehco1996 既然有人可以实现,你就可以好好研究研究了呀.
    qq292382270
        38
    qq292382270  
       2017-08-16 10:52:23 +08:00
    @yangxin0 这玩意的命名我一直都很纠结.. 功能就是获取到指定个人号的收款记录.并做成订单处理之类的一系列逻辑...
    @laoertongzhi 本来是没有网站的.做出来的程序只是自己几个朋友私下的用..前一个月才开始打算正规做 .. 自己一个人撸网站和 app 的前后台,心力憔悴.. 所以问题来了,还没上线,一些细节问题没考虑好.. 不过最迟这周应该可以发布.. 但应该不会来 V2 这里宣传.. 这玩意有点违法
    @Ehco1996 还差一点.. 这周应该可以发布..
    zhuf
        39
    zhuf  
       2017-08-16 10:54:31 +08:00
    @qq292382270 有没详细介绍的啊,最近刚好有这需求
    qq292382270
        40
    qq292382270  
       2017-08-16 10:57:45 +08:00
    @zhuf 我直接手打好咯.. 网站还差一点才上线.. 核心功能是,实时监控支付宝个人号(微信号也支持的),有新到帐订单后,立刻取出订单号,付款名,备注等等信息. 发送到服务器里面. 延迟差不多在 1-3 秒左右.
    流程: 服务器创建订单->生成二维码->用户扫码支付或转账->服务器收到监控程序发来的新订单数据 ->处理订单为支付成功.
    zhuf
        41
    zhuf  
       2017-08-16 11:04:23 +08:00
    @qq292382270 哦,网站上线了通知下哈,或者留个联系方式
    sofs
        42
    sofs  
       2017-08-16 11:05:22 +08:00
    lz,blog 音乐自动播放关闭掉吧
    qq292382270
        43
    qq292382270  
       2017-08-16 11:16:30 +08:00
    @zhuf 嗯.. 话说我的联系方式.... 就在我昵称上了.. 唉.. 当初以为是设置网站 id 以及名字可以改 .. 没想到..
    magiclobster
        44
    magiclobster  
       2017-08-16 11:24:33 +08:00
    @q409195961 最近公司想搞一个爬招行流水的功能,客户转到公司的卡上,去爬流水看到账没,这个有类似的样例没
    Charkey
        45
    Charkey  
       2017-08-16 11:27:51 +08:00
    支付宝风控严
    eoo
        46
    eoo  
       2017-08-16 11:49:00 +08:00 via Android
    我在弄 QQ 扫码支付
    Ehco1996
        47
    Ehco1996  
    OP
       2017-08-16 12:08:41 +08:00
    @qq292382270
    哈哈哈莫名好想笑。弄出来也麻烦也通知一声


    @sofs
    好好好,好多人喊我关了,明明就很好听
    tjxiter
        48
    tjxiter  
       2017-08-16 13:55:46 +08:00
    爬 google play 的 apk,楼主有没有好的建议啊?用 seleninum 写了,只能下载到模拟器或手机。 需求是要下载到本地电脑。
    youxiachai
        49
    youxiachai  
       2017-08-16 13:57:16 +08:00
    这种玩意...其实..最怕风控..了..很容易就被封了..
    anhaoh
        50
    anhaoh  
       2017-08-16 14:03:53 +08:00
    你输入账号密码的时候不能过快
    你输入账号密码的时候不能过慢

    这个太扯蛋吧。。。。你让用浏览器保存了秘密自动填充的人怎么办
    Felldeadbird
        51
    Felldeadbird  
       2017-08-16 14:07:55 +08:00
    强,这个思路还真折中,有点猥琐。 唉。国内个人开发者,想做点支付都 TM 得艰难。
    greatghoul
        52
    greatghoul  
       2017-08-16 14:16:16 +08:00 via Android
    chrome 浏览器扩展常驻取支付宝信息,想要什么数据有什么数据。

    无需模拟登录,自己手动登录一次就可以了,访问页面用的就是你平日用的浏览器,不太可能支付宝发现和屏蔽。缺点,得有自己的一台电脑常年开机。
    chroming
        53
    chroming  
       2017-08-16 14:18:09 +08:00
    爬虫入门知识+推广广告
    Beckham
        54
    Beckham  
       2017-08-16 15:27:06 +08:00
    来学习一下爬虫
    vincenth520
        55
    vincenth520  
       2017-08-16 16:18:07 +08:00
    个人你完全可以去申请那种第三方支付,费率高一点而已
    Anshi
        56
    Anshi  
       2017-08-16 16:21:59 +08:00
    。。。今天看见你三次了
    sunsh217
        57
    sunsh217  
       2017-08-16 18:35:04 +08:00 via Android
    @greatghoul 请教是哪款插件?
    sunsh217
        58
    sunsh217  
       2017-08-16 22:15:44 +08:00
    @greatghoul 懂了。
    fzinfz
        59
    fzinfz  
       2017-08-16 22:29:15 +08:00 via iPad
    换个思路:微店。如何?
    tbag781623489
        60
    tbag781623489  
       2017-08-16 22:39:09 +08:00 via iPhone
    又学到了点新东西 感谢
    Ehco1996
        61
    Ehco1996  
    OP
       2017-08-16 22:42:05 +08:00 via iPhone
    @fzinfz

    微信支付 得绑定 认证过的公众号。
    也是需要营业执照之类的。总之现在个人想做第三方支付太难了...政策的原因吧,各方面因素都有...
    ZengLeiPro
        62
    ZengLeiPro  
       2017-08-16 23:49:50 +08:00
    用第一种方法,手动获取 cookie,然后保持刷新频率,没办法长期保持登陆状态吗?
    eoo
        63
    eoo  
       2017-08-16 23:55:58 +08:00 via Android
    今晚已经实现 QQ 转账接入网站了,相比支付宝和微信 QQ 好弄多了。
    Ehco1996
        64
    Ehco1996  
    OP
       2017-08-17 06:11:35 +08:00 via iPhone
    @ZengLeiPro

    我尝试的结果是不行,就算你循环刷新页面,cookies 十几二十分钟还是会死掉
    luap
        65
    luap  
       2017-08-17 14:29:59 +08:00
    我自己开发的支付宝订单系统。是刷 cookie,至少可保持 1 个月不掉线。已经稳定使用半年了
    Ehco1996
        66
    Ehco1996  
    OP
       2017-08-17 17:48:13 +08:00 via iPhone
    @luap 能分享一下思路么
    leavic
        67
    leavic  
       2017-08-17 19:30:20 +08:00
    cookies 十分钟过期,我早就弃坑了。
    luap
        68
    luap  
       2017-08-17 21:28:21 +08:00 via Android
    @Ehco1996 要模拟正常用户,不只是刷订单页面,要随机刷其他页面。并且间隔时间不能一样
    Ehco1996
        69
    Ehco1996  
    OP
       2017-08-17 22:05:21 +08:00 via iPhone
    @luap

    谢谢 明天我试试
    vovov
        70
    vovov  
       2017-08-19 16:20:07 +08:00 via Android
    果然程序员思维解决问题啊,我要有这么多时间就申请营业执照去了。幸好自己有支付宝和微信支付接口,这样开发得累死。建议楼主去申请个个体工商户就行了
    Ehco1996
        71
    Ehco1996  
    OP
       2017-08-19 16:25:34 +08:00 via iPhone
    @vacker
    请问,我还是学生,可以申请吗?是不是还要注册个公司啥的
    vovov
        72
    vovov  
       2017-08-19 16:39:52 +08:00 via Android
    @Ehco1996 年满 18 周岁就可以申请了,但提醒一下,公司申请容易注销难。
    Ehco1996
        73
    Ehco1996  
    OP
       2017-08-19 17:16:06 +08:00 via iPhone
    @vacker
    谢谢,那我再想想其他的办法好了
    Buffer2Disk
        74
    Buffer2Disk  
       2017-08-19 22:36:00 +08:00
    @qq292382270 你应该是属于老司机了吧,你的思路是做楼上说的那种持久化的 cookies,还是像楼主这种定期去模拟登陆获取最新 cookies 呢?如果是第二种,频率把握不好的话,被支付宝风控的风险应该很大吧
    qq292382270
        75
    qq292382270  
       2017-08-20 01:48:32 +08:00
    cookies 取登录时候的就可以用了 . 技术难点是怎么保持.. 我这里是放服务器里面执行. 几个月掉线一次.. 找不出掉线原因,估计是网络波动吧我的猜测..
    @Buffer2Disk
    Buffer2Disk
        76
    Buffer2Disk  
       2017-08-20 09:05:28 +08:00
    @qq292382270 也有可能是支付宝的强制更新 session 的策略?
    Ehco1996
        77
    Ehco1996  
    OP
       2017-08-20 09:39:00 +08:00 via iPhone
    @Buffer2Disk

    是的,cookies 是动态更新的

    最后我用的是模拟等登陆之后
    随机访问一个页面,并动态获取更新 cookies
    但这样也不稳定,一般 2 小时左右 就 remote close 了
    jko123
        78
    jko123  
       2017-09-13 19:42:32 +08:00
    centos 下,selenium + phantomjs 无法定位输入,楼主知道怎么解决吗?
    ZhLTE
        79
    ZhLTE  
       2018-07-19 13:49:36 +08:00
    selenium + phantomjs 基本没法登陆成功了~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1276 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 23:49 PVG 07:49 LAX 16:49 JFK 19:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86