是否可以使用现有的登录会话(例如在Chrome中)并将该会话通过管道传递给python脚本以执行https请求?
为了清楚说明我要做什么,有一个网站只能在您登录后才能访问其内容,但是由于实际具有验证码,因此无法为简单的http auth卷曲凭据。所以我想做的是,登录一个浏览器,然后将该会话提取到python脚本中,并通过该会话请求url。我说得通吗
import requests
url="http://stackoverflow.com/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"}
cookie = {
"domain": ".stackoverflow.com",
"expirationDate": "1427212131.77312",
"hostOnly": "false",
"httpOnly": "true",
"name": "usr",
"path": "/",
"secure": "false",
"session": "false",
"storeId": "0",
"value": "SOMEVALUE",
"id": "5"
}
t = open("response.txt", "w")
t.write(requests.get(url, headers=headers, cookies=cookie).text.encode("ascii", "ignore"))
Run Code Online (Sandbox Code Playgroud)
因此,我尝试了一下,但似乎并没有解决任何问题。如果我看一下响应,就会发现它实际上是没有任何用户登录的页面。不知道我还想念什么...
我想创建一个由 AWS 管理的密钥。到目前为止,这就是我所拥有的
@mock_kms
def test_mocking_getting_keys(self):
session = boto3.Session(profile_name=profile)
client = session.client('kms', 'us-east-2')
key = client.create_key(
Policy='string',
Description='string',
KeyUsage='SIGN_VERIFY',
CustomerMasterKeySpec='RSA_2048',
Origin='AWS_KMS',
CustomKeyStoreId='string',
BypassPolicyLockoutSafetyCheck=True,
Tags=[
{
'TagKey': 'string',
'TagValue': 'string'
},
]
)
print(key)
Run Code Online (Sandbox Code Playgroud)
但密钥似乎没有 KeyManager 字段:
{'KeyMetadata': {'AWSAccountId': '012345678912', 'KeyId': '7fc3e676-0d1c-4526-9161-41b27a776033', 'Arn': 'arn:aws:kms:us-east-2:012345678912:key/7fc3e676-0d1c-4526-9161-41b27a776033', 'CreationDate': datetime.datetime(2020, 1, 3, 13, 31, 17, tzinfo=tzutc()), 'Enabled': True, 'Description': 'string', 'KeyUsage': 'SIGN_VERIFY', 'KeyState': 'Enabled'}, 'ResponseMetadata': {'HTTPStatusCode': 200, 'HTTPHeaders': {'server': 'amazon.com'}, 'RetryAttempts': 0}}
Run Code Online (Sandbox Code Playgroud)
我尝试在 create_key 调用期间将 KeyManager 添加为参数,但这也不起作用。
似乎 moto 不返回 KeyManager 字段。有没有办法专门模拟该返回值,但不更改其余参数的 dictionary.get 方法的行为?
IE …
我有一个生成QR图像的功能:
import qrcode
def generateRandomQR():
qr = qrcode.QRCode(version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data("Huehue")
qr.make(fit=True)
img = qr.make_image()
return img
Run Code Online (Sandbox Code Playgroud)
现在的想法是生成图像,然后将其扔在烧瓶上,作为图像,这是我的烧瓶功能:
@app.route("/qrgenerator/image.jpg")
def generateQRImage():
response = make_response(qrWrapper.generateRandomQR())
response.headers["Content-Type"] = "image/jpeg"
response.headers["Content-Disposition"] = "attachment; filename=image.jpg"
return response
Run Code Online (Sandbox Code Playgroud)
但它似乎并没有正常工作......我遇到了500错误,所以我不太确定我错了什么.
因此,我尝试弄乱我的图表,发现整数/浮点数/日期在x轴上可以很好地工作,但是在您输入字符串时,它会爆炸。
我正在尝试绘制a:字/计数图,但不幸的是,我似乎无法将字符串放在x轴上。Google Charts允许使用此格式吗?还是严格按照int / floats / dates格式输入?
好像我的静态文件没有正确提供.这就是它现在的样子:
myApp
__init__.py
static
img
js
bootstrap.min.js
etc.
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序配置在我的__init__.py外观:
app = Flask(__name__, static_url_path="", static_folder="static")
Run Code Online (Sandbox Code Playgroud)
这是错误:
127.0.0.1 - - [01/Dec/2014 13:12:01] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 -
Run Code Online (Sandbox Code Playgroud)
至于url路由,没有问题,localhost/home路由到home,localhost /联系路由联系等等.但是没有找到静态文件:(我错过了什么?
注意:我在Mac上托管这个,纯粹是本地主机
这是我的__init__.py主要方法:
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
Run Code Online (Sandbox Code Playgroud)
运行方式:
python __init.py__
Run Code Online (Sandbox Code Playgroud) 我正在编写一个内存扫描程序,我希望能够将特定地址的内存内容复制到我创建的内存块结构中的缓冲区中.到目前为止,这是我的代码:
#include <windows.h>
#include <stdio.h>
typedef struct _MEMBLOCK
{
HANDLE hProc;
unsigned char *addr;
int size;
unsigned char *buffer;
unsigned char *searchmask;
int matches;
struct _MEMBLOCK *next;
} MEMBLOCK;
MEMBLOCK* createMemblock(HANDLE hProc, MEMORY_BASIC_INFORMATION *meminfo)
{
MEMBLOCK *mb = malloc(sizeof(MEMBLOCK));
if (mb)
{
mb->hProc = hProc;
mb->addr = meminfo->BaseAddress;
mb->size = meminfo->RegionSize;
mb->buffer = malloc(meminfo->RegionSize);
mb->searchmask = malloc(meminfo->RegionSize / 8);
memset(mb->searchmask, 0xff, meminfo->RegionSize / 8);
mb->matches = meminfo->RegionSize;
mb->next = NULL;
}
return mb;
}
void dumpScanInfo(MEMBLOCK *mbList)
{
MEMBLOCK *mb …Run Code Online (Sandbox Code Playgroud) 假设我的函数“search()”在 mongodb 中获取一些内容并返回生成器。
我的烧瓶视图功能看起来像这样
@app.route("search/")
def search_page():
generator = search()
return Response(generator)
Run Code Online (Sandbox Code Playgroud)
但是如果我这样做,我会收到这个错误:
Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 180, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 171, in execute
write(data)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 151, in write
assert type(data) is bytes, 'applications must write bytes'
AssertionError: applications must write bytes
Run Code Online (Sandbox Code Playgroud)
生成器本身会产生几个 json 值。我总是可以使用生成器来构造一个列表并返回该列表,但我想避免这样做。
这是我的小提琴:
https://jsfiddle.net/85ef12m9/
我有这门课
.scrollable{
overflow: auto;
max-height:400px;
}
Run Code Online (Sandbox Code Playgroud)
而且我说了一个很长的div有很多元素:
<div class=scrollable>
<div>
<input type="checkbox" id="test0" />
<label for="test0">Red</label>
</div>
<div>
<input type="checkbox" id="test1" />
<label for="test1">Red</label>
</div>
....
Run Code Online (Sandbox Code Playgroud)
当我单击一个元素说test51时,我的滚动条会跳转到元素位置,就好像它不包含在可滚动的div中一样.任何人都知道为什么会这样吗?
我有一段代码可以为我处理文件上传,理想情况下我只想接受文本文件(csv、制表符分隔文件等),所以我添加了这段代码:
mimetype = magic.from_buffer(request.FILES['docfile'].read(512), mime=True)
if form.is_valid() and mimetype == 'text/plain':
....
Run Code Online (Sandbox Code Playgroud)
就在最近,我的一位用户尝试上传一个文本文件,但系统拒绝了它,该文件的 mime 是:
file --mime-type -b input_file.txt
application/octet-stream
Run Code Online (Sandbox Code Playgroud)
当然,之前上传的所有文件都是文本/纯文本。这两者有什么区别?是否有更“全局”的方法来检查文件是否是文本文件?
我的目标是缓存视图,直到发生视图缓存需要过期的事件为止,否则缓存 1 小时。这就是我在 urls.py 中的内容
url(r'^get_some_stuff/$', cache_page(60 * 60, key_prefix='get_some_stuff')(views.StuffView.as_view())),
Run Code Online (Sandbox Code Playgroud)
这很好用。现在我尝试获取缓存的视图以验证其中是否有内容,我尝试了以下操作:
from django.core.cache import cache
cache.get('get_some_stuff')
Run Code Online (Sandbox Code Playgroud)
但这返回 None。我希望做这样的事情:
from django.core.cache import cache
#relevant event happened
cache.delete('get_some_stuff')
Run Code Online (Sandbox Code Playgroud)
处理缓存的正确方法是什么?
我尝试过传递 uri 路径:
cache.get('/api/get_some_stuff/')
Run Code Online (Sandbox Code Playgroud)
我仍然没有得到回报。
>>> cache.has_key('/api/get_some_stuff/')
False
>>> cache.has_key('/api/get_some_stuff')
False
>>> cache.has_key('get_some_stuff')
False
Run Code Online (Sandbox Code Playgroud)
我已经查看了建议的答案,它根本没有解决根本问题。它看起来并不像传递 uri 路由路径作为密钥那么简单,因为密钥在 django 中有些抽象。