test.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import requests
  2. import json
  3. from urllib.parse import urlparse, parse_qs, urlencode
  4. # First URL
  5. url1 = "https://api.amemv.com/insights/lynx_web/anchor/preview?anchor_type=internet_service&app_id=1128&cmpt_version=1&component_id=7430558813054405430&download_style=1&interaction_style=1&is_preview=1&item_id=0&owner_id=1809047160845323&sec_uid=MS4wLjABAAAAHBDxS7uq2FpOE5kTjzuQTuIHOqL460dWJi9izIZedWIYRktaqewXWOw_rFvP8Avx"
  6. # Parse URL parameters
  7. parsed_url = urlparse(url1)
  8. params = parse_qs(parsed_url.query)
  9. # Extract required parameters
  10. component_id = params['component_id'][0]
  11. cmpt_version = params['cmpt_version'][0]
  12. item_id = params['item_id'][0]
  13. sec_uid = params['sec_uid'][0]
  14. app_id = params['app_id'][0]
  15. # Construct extra parameter
  16. extra_data = {
  17. 'item_id': item_id,
  18. 'author_id': params['owner_id'][0],
  19. 'device_platform': 'ios'
  20. }
  21. # Construct parameters for second URL
  22. params2 = {
  23. 'component_id': component_id,
  24. 'cmpt_version': cmpt_version,
  25. 'extra': json.dumps(extra_data),
  26. 'app_id': app_id,
  27. 'sec_uid': sec_uid
  28. }
  29. # Construct second URL
  30. url2 = f"https://api.amemv.com/aweme/v1/saiyan/industry/component/anchor/page/?{urlencode(params2)}"
  31. try:
  32. # Download content from second URL
  33. response = requests.get(url2, verify=False)
  34. response.raise_for_status()
  35. # Parse JSON response
  36. data = response.json()
  37. # Parse the data string inside anchor_page.data
  38. anchor_data = json.loads(data['anchor_page']['data'])
  39. # Extract and print specific fields from the first item
  40. if anchor_data and len(anchor_data) > 0:
  41. item = anchor_data[0] # Get the first item
  42. print(f"wechat_microapp_jump_url: {item.get('wechat_microapp_jump_url', '')}")
  43. print(f"wechat_microapp_title: {item.get('wechat_microapp_title', '')}")
  44. except requests.exceptions.RequestException as e:
  45. print(f"Error occurred: {e}")
  46. except json.JSONDecodeError as e:
  47. print(f"JSON parsing error: {e}")