geetest.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import json
  2. import time
  3. import requests
  4. from bs4 import BeautifulSoup
  5. session = requests.Session()
  6. headers = {
  7. "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
  8. "accept-encoding": "gzip, deflate, br",
  9. "accept-language": "zh-CN,zh;q=0.9",
  10. "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
  11. }
  12. url1 = 'https://callback.58.com/antibot/verifycode?serialId=7b346721363ada3b521247e260106e6e_0358bd4929c44f5baa22892bf19aa5a1&code=100&sign=243eac3700b81b78a07b9950cbcd6a69&namespace=fangchan_business_pc&url=https%253A%252F%252Fqd.58.com%252Fshangpu%252F58082260281391x.shtml%253Fprd%253D0W4WrogzTpASZmj4oy%252Fg9mdTvi8HLOnRB2V6n6UFnBo%253D%2526houseId%253D3512487631807495%2526gpos%253D9%2526positionType%253Dshikanhouse%2526filterJson%253DeyJRVVlVIjpbeyJrZXkiOiIiLCJsYWJlbCI6IuadjuaypyIsInZhbCI6ImxpY2FuZyJ9XSwiWVVFWlVKSU4iOlt7ImtleSI6InBhcmFtczM5NCIsImxhYmVsIjoi5Lu35qC8562b6YCJOjAtMTAwMDDlhYMv5pyIIiwidmFsIjoiMF8xMDAwMCJ9XSwiTUlBTkpJIjpbeyJrZXkiOiJtaWFuSmkiLCJsYWJlbCI6Iumdouenr-etm-mAiToxMDAtMzAwbcKyIiwidmFsIjoiMTAwXzMwMCJ9XX0%2526jx_abtest%253DZWljX3N5ZGNfcGNfcmVjb21tZW5kX3Rlc3QscHRyX2ZhbmdfYnVkZ2V0X2JvdHRvbXwxLHVzZXJfcGhhc2VfbA%2526list_type%253Dmain'
  13. res1 = session.get(url1, headers=headers)
  14. soup1 = BeautifulSoup(res1.text, 'lxml')
  15. serialid = soup1.find('input', attrs={'id': "serialId"}).attrs['value']
  16. sign = soup1.find('input', attrs={'id': "sign"}).attrs['value']
  17. url = soup1.find('input', attrs={'id': "url"}).attrs['value']
  18. url2 = f'https://callback.58.com/antibot/geetest/register.do?t={int(time.time()*1000)}'
  19. headers2 = {
  20. "accept": "*/*",
  21. "accept-encoding": "gzip, deflate, br",
  22. "accept-language": "zh-CN,zh;q=0.9",
  23. "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
  24. "origin": "https://callback.58.com",
  25. "referer": url1,
  26. "user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
  27. }
  28. data2 = {
  29. "serialId": serialid,
  30. "code": "100",
  31. "sign": sign,
  32. "url": url,
  33. "namespace": "fangchan_business_pc"
  34. }
  35. res2 = session.post(url2, headers=headers2, data=data2)
  36. print(res2.text)
  37. res2_json = json.loads(res2.json()['data'])
  38. print(res2_json)
  39. challenge = res2_json['challenge']
  40. gt = res2_json['gt']
  41. url3 = f'https://api.geetest.com/gettype.php?gt={gt}&callback=geetest_{int(time.time()*1000)}'
  42. headers3 = {
  43. "Accept": "*/*",
  44. "Accept-Encoding": "gzip, deflate, br",
  45. "Accept-Language": "zh-CN,zh;q=0.9",
  46. "Host": "api.geetest.com",
  47. "Referer": "https://callback.58.com/",
  48. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36"
  49. }
  50. res3 = session.get(url3, headers=headers3)
  51. print(res3.json())
  52. url4 = 'https://api.geetest.com/get.php'
  53. params4 = {
  54. "gt": gt,
  55. "challenge": challenge,
  56. "lang": "zh-cn",
  57. "pt": "0",
  58. "client_type": "web",
  59. "w": "JmrCyD(UUqE5VVhV0DYtaCWcY8RRZAanKx0KSTpEWmfKEjAqtRRzToQOst0R7jQnwju4)yS5OuK1E7geNLjnsfYBJosic0OHlsHcCNZzFOk6AJ(hZkNgL3hgXngc)Er8lEIABc86i0yBxBCzEgg9lZCIxo0EeZZi2SW7zgQ46AoQrPjn(KJ)JyY2BOCYGAj1xJsLkHNfWy3nbVNqQIbOz(pBCLkXK3XjS6i(vkWXpwfq(jwzKzmY)xlnVKM4FCmIGAtWdocxcZ2yuZ9bbtIG)(dezkoIgxbfadulmXfPKZMvWJP9lbFXyWM1akRiKkreHnRmkgiBXNUqs2dGdLqyhnpZ9f3C1mUm65TVQ9O)xJBIf3ELjcUTMPyFVvZcXqQ6ICIToXlJ91YnhFO(RHY3plFx9rbmmou)owNEgYn)7unp2EOsLQ09bZBzDGMffx7ewGPW4I3zR1Li5n1RJMYkT6zo1Cxj4vnYtSaq4EgJNK(VeTeIz5tPjw))yDG8MhXo9e6SulCHYQ1868yPEOCc65LQ9Q3Ljpas5zGTfjWUs0QO7LTh0S9xwdLsqjVrJL)vaWBl23R6d(JAKq40w(8ggmMduaeucaH2qUlxmE6zczO)wET4IoqVCGiVJrMjwoWxRwy7evS1vonUzc5d8geYF)yeIJjU5(Kh6hl2kZeDnsg7y6)tDT9O5THt0sC2knclz9NXEpni8BfYKhVXeN9TlYzOWTjQzF9ocG6PwVfvs(WkrYQXY9ANbx2dSydX6XXjaYgdUNZfb5hVDnnxoDcQBiGvGQQJJ5Am7(08YTVhMSviLG(Nmj4lXPEQh1piQynDR6Ut0bNmhDHd70HWXvyySe52nPzOn2CigrEdn6A8asdqH3XfpbNMdkfDy7mww9WH9)oLbd32Whr6h1yQU994XopxO14wrJGoJRbrBMWr(zNN9nZZ5XOl6ieYGfw0JcRYXJKEhFV2KXZasXxgk0CiV1td9)kC(v3BxJAqmTDEv(JE4ZQB4sWJupCuoK(WVXY8fjuxlEt)X7Bj7zIcNGVxBSlvygKGLgMNaNdefOn4BeLhc9onUE0zWokpR46v7X)oH2h49jYhQY4YxPbLomeDMdVXGFPe(pLnT5(NAOBlp6s09UmtoLGyebICED0ExNNBICN2RWUjy9oYEb)XdPsv6RPqzy1mAv)0O2EwU6aw4RQ.5b55ff0ac7548df3ffd4a0d041957210eddb656d549655a99bd1b516d7389e282aadf598311d539305d6e830a48c9d0f5bec327467e8d0bd615c920f7401a46952675153f805ff11902f5dbfacfb9213fc76ef93de334a2b826bdb7acc5848eda5dbbb4e85c6c8086a8c3c0caea1f8133b4256483806dfff175f38a5f49b7336",
  60. "callback": f"geetest_{time.time()*1000}"
  61. }
  62. res4 = session.get(url4, headers=headers3, params=params4)
  63. print(res4.json())