Невозможно удалить ведущий \ n с помощью полосы или заменить - PullRequest
3 голосов
/ 17 мая 2019

Я пытаюсь получить только IP: порт из следующего текста:

{
  "supportsHttps": true,
  "protocol": "http",
  "ip": "149.28.159.132",
  "port": "8080",
  "get": true,
  "post": true,
  "cookies": true,
  "referer": true,
  "user-agent": true,
  "anonymityLevel": 1,
  "websites": {
    "example": true,
    "google": true,
    "amazon": false,
    "yelp": false,
    "google_maps": false
  },
  "country": "US",
  "unixTimestampMs": 1558097368515,
  "tsChecked": 1558097368,
  "unixTimestamp": 1558097368,
  "curl": "http://149.28.159.132:8080",
  "ipPort": "149.28.159.132:8080",
  "type": "http",
  "speed": 89.52,
  "otherProtocols": {},
  "verifiedSecondsAgo": 1249
}

Я использую этот код:

def gimmeproxy():
    r=requests.get("https://gimmeproxy.com/api/getProxy?api_key=45785302-3264-4694-99e1-7c6628c90e6c&get=true&country=US&protocol=http&supportsHttps=true&user-agent=true&websites=google&anonymityLevel=1")
    contents=str(r.content)
    content=contents.split(',')
    IP=content[20]
    print(IP)

    #IP=IP.replace(':','')
    IP = IP.replace('"', '')
    IP = IP.replace(',', '')
    IP = IP.replace("\n", "")
    IP = IP.replace('ipPort', '')
    IP = IP.replace(' ', '')
    IP = IP.lstrip()

    print(IP)
    return IP

Однако, независимо от того, что я делаю, вывод всегда показывает \ n

C:\Users\brian>python freelancer_scripts_gimmeproxy.py
\n  "ipPort": "104.248.85.190:8080"
\n:104.248.85.190:8080

Я пытался раздеть и заменить все, что мог придумать, но просто не могу избавиться от этого \ n. Как я могу получить только IP: адрес порта из текста?

1 Ответ

5 голосов
/ 17 мая 2019

То, что вы получаете, называется JSON. Было бы проще преобразовать его в словарь, чтобы получить желаемое значение (вы уже используете requests, поэтому мы можем использовать метод json):

def gimmeproxy():
    r = requests.get("https://gimmeproxy.com/api/getProxy?api_key=45785302-3264-4694-99e1-7c6628c90e6c&get=true&country=US&protocol=http&supportsHttps=true&user-agent=true&websites=google&anonymityLevel=1")
    contents = r.json()  # transform into a dictionary
    ip = contents["ip"]
    port = contents["port"]
    print(ip)
    print(port)
    return ip
...