mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-19 12:04:47 +08:00
65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
import pycurl
|
|
import json
|
|
# 打印看下pycurl的版本是否和文章中的一致
|
|
print(pycurl.version)
|
|
result = 0
|
|
|
|
|
|
def my_func(data):
|
|
global result
|
|
d = json.loads(data)['data']
|
|
for i in d:
|
|
result += int(i['value'])
|
|
print(result)
|
|
|
|
|
|
headers = [
|
|
'Host: www.python-spider.com',
|
|
'accept: application/json, text/javascript, */*; q=0.01',
|
|
'accept-language: zh-CN,zh;q=0.9',
|
|
'content-type: application/x-www-form-urlencoded; charset=UTF-8',
|
|
'cookie: 你的cookie',
|
|
'origin: https://www.python-spider.com',
|
|
'referer: https://www.python-spider.com/challenge/22',
|
|
'sec-ch-ua: ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"',
|
|
'sec-ch-ua-mobile: ?0',
|
|
'sec-ch-ua-platform: "Windows"',
|
|
'sec-fetch-dest: empty',
|
|
'sec-fetch-mode: cors',
|
|
'sec-fetch-site: same-origin',
|
|
'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
|
|
' Chrome/103.0.0.0 Safari/537.36',
|
|
'x-requested-with: XMLHttpRequest'
|
|
]
|
|
|
|
curl = pycurl.Curl()
|
|
|
|
curl.setopt(
|
|
curl.SSL_CIPHER_LIST,
|
|
'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,'
|
|
'TLS_CHACHA20_POLY1305_SHA256,ECDHE-ECDSA-AES128-GCM-SHA256,'
|
|
'ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384,'
|
|
'ECDHE-RSA-AES256-GCM-SHA384,ECDHE-ECDSA-CHACHA20-POLY1305,'
|
|
'ECDHE-RSA-CHACHA20-POLY1305,ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES256-SHA,'
|
|
'AES128-GCM-SHA256,AES256-GCM-SHA384,AES128-SHA,AES256-SHA'
|
|
)
|
|
|
|
curl.setopt(curl.HTTP_VERSION, curl.CURL_HTTP_VERSION_2_0)
|
|
curl.setopt(curl.SSLVERSION, curl.SSLVERSION_TLSv1_2)
|
|
curl.setopt(curl.SSL_ENABLE_NPN, 0)
|
|
curl.setopt(curl.SSL_ENABLE_ALPS, 1)
|
|
curl.setopt(curl.SSL_CERT_COMPRESSION, "brotli")
|
|
curl.setopt(pycurl.HTTP2_PSEUDO_HEADERS_ORDER, "masp")
|
|
curl.setopt(pycurl.HTTPHEADER, headers)
|
|
|
|
# my_func是处理数据返回的回调事件
|
|
curl.setopt(pycurl.WRITEFUNCTION, my_func)
|
|
url = 'https://www.python-spider.com/api/challenge22'
|
|
for i in range(1, 101):
|
|
data = "page={}".format(i)
|
|
curl.setopt(pycurl.POSTFIELDS, data)
|
|
curl.setopt(pycurl.URL, url)
|
|
curl.perform()
|
|
|
|
curl.close()
|