Skip to content

Commit d77591f

Browse files
chenqichenqi
authored andcommitted
Replace gapi.discovery with requests.get
1 parent 1736915 commit d77591f

File tree

4 files changed

+38
-33
lines changed

4 files changed

+38
-33
lines changed

PageSpeedInsights/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,8 @@ PageSpeed Insights
33
With Google Cloud Platform / Cloud Functions.
44

55
Setup
6+
> pip3 install -r requirements.txt
7+
8+
or
9+
> pip3 install --upgrade requests
610
> pip3 install --upgrade google-api-python-client

PageSpeedInsights/main.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
import psi
55
import job
66

7-
def psi_http(request):
8-
psi.run_http(request)
9-
107
def psi_pubsub(event, context):
118
psi.run_pubsub(event, context)
129

PageSpeedInsights/psi.py

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,58 @@
22
# -*- coding: utf-8 -*-
33
'''PageSpeed Insights Single + Google Cloud Functions'''
44
import os
5-
from googleapiclient.discovery import build
5+
import requests
66

77
# Access Token, generated from GCP Console Credentials page.
88
API_KEY = os.getenv('GCP_API_KEY')
99

10-
# For local development, setup http proxy as needed.
11-
HTTP = None
10+
GAPI_PSI = "https://www.googleapis.com/pagespeedonline/v5/runPagespeed"
11+
12+
SESSION = requests.Session()
13+
14+
PROXIES = None
1215

13-
URL = "https://m.ctrip.com/webapp/flight/schedule/detail.html"
1416

1517
def run(url):
16-
pagespeedonline = build(
17-
serviceName = 'pagespeedonline',
18-
version = 'v5',
19-
http = HTTP,
20-
developerKey = API_KEY
21-
)
22-
response = pagespeedonline.pagespeedapi().runpagespeed(url = url).execute()
23-
print(response)
18+
try:
19+
payload = {"url": url,
20+
"category": "performance",
21+
"locale": "zh",
22+
"strategy": "mobile",
23+
"key": API_KEY
24+
}
25+
response = SESSION.get(url=GAPI_PSI, params=payload, proxies=PROXIES)
26+
print(response.status_code)
27+
print(response.json())
28+
except requests.RequestException as _e:
29+
print(_e)
2430
return ('OK', 200)
2531

26-
def run_http(request):
27-
request_json = request.get_json()
28-
try:
29-
url = request_json['url']
30-
return run(url)
31-
except KeyError:
32-
return ('', 400)
3332

3433
def run_pubsub(event, context):
3534
import base64
3635
pubsub_message = base64.urlsafe_b64decode(event['data']).decode('utf-8')
3736
run(pubsub_message)
3837
return 'OK'
3938

40-
def test_run_http():
41-
from flask import Request
42-
_request = Request.from_values(json = { "url": URL })
43-
run_http(_request)
4439

45-
def test_run_pubsub():
40+
def test_run_http(test_url):
41+
run(test_url)
42+
43+
44+
def test_run_pubsub(test_url):
4645
import base64
47-
event = { "data": base64.urlsafe_b64encode(URL.encode('utf-8'))}
46+
event = {"data": base64.urlsafe_b64encode(test_url.encode('utf-8'))}
4847
context = None
4948
run_pubsub(event, context)
5049

51-
if __name__ == "__main__":
52-
import httplib2
53-
HTTP = httplib2.Http(proxy_info = httplib2.ProxyInfo(httplib2.socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 1086))
5450

55-
test_run_http()
56-
test_run_pubsub()
51+
if __name__ == "__main__":
52+
PROXIES = {
53+
"http": "127.0.0.1:1087",
54+
"https": "127.0.0.1:1087",
55+
}
56+
57+
_test_url = "https://m.ctrip.com/webapp/flight/schedule/detail.html"
58+
test_run_http(_test_url)
59+
test_run_pubsub(_test_url)

PageSpeedInsights/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Function dependencies, for example:
2+
requests==2.21.0
23
google-cloud-pubsub==0.40.0

0 commit comments

Comments
 (0)