小编Key*_*dar的帖子

从URL下载返回的Zip文件

如果我有一个URL,当在Web浏览器中提交时,弹出一个对话框来保存zip文件,我将如何在Python中捕获和下载此zip文件?

python url zip urllib download

56
推荐指数
7
解决办法
8万
查看次数

是否可以在Web.config中配置一个位置以仅允许本地连接

我在ASP.Net应用程序中有一个页面(实际上它的Mvc但不重要),我想只允许从本地机器连接到这个页面.我很乐意在Web.config中做这样的事情:

<location path="resources">
  <system.web>
    <authorization>
      <allow ips="local"/>
    </authorization>
  </system.web>
</location>  
Run Code Online (Sandbox Code Playgroud)

我知道这可以通过简单检查后面的页面代码(或控制器),甚至可以只使用IIS配置,但我会喜欢Web.config配置,因为这将是我认为最优雅的解决方案.任何人都知道这是否可行?

asp.net web-config

19
推荐指数
2
解决办法
2万
查看次数

如何访问Python egg文件中的文件?

这可能是一个奇怪的要求,但这是我遇到的.我用Google搜索但没有产生任何结果.

我正在编写一个使用XML文件中记录的大量常量属性/值的应用程序(它们不会更改为静态文件),在我为它生成一个egg文件之前,工作正常.

当逻辑到达XML访问部分时,我收到了一个这样的抱怨:/home/Workspace/my_proj/dist/mps-1.2.0_M2-py2.6.egg/mps/par/client/syntax/syntax.xml

实际上我已经在上面的路径中捆绑了XML文件,但似乎Python不知道如何访问它.

访问XML的代码是......

file_handler = open(path_to_the_file)
lines = file_handler.read().splitlines()
Run Code Online (Sandbox Code Playgroud)

任何的想法?

python egg

19
推荐指数
2
解决办法
2万
查看次数

从已解析的Beautiful Soup列表中删除<br>标签?

我正在进入一个包含我想要的所有行的for循环:

page = urllib2.urlopen(pageurl)
soup = BeautifulSoup(page)
tables = soup.find("td", "bodyTd")
for row in tables.findAll('tr'):
Run Code Online (Sandbox Code Playgroud)

在这一点上,我有我的信息,但是

<br />
Run Code Online (Sandbox Code Playgroud)

标签毁了我的输出.

删除这些最简洁的方法是什么?

python beautifulsoup html-parsing

14
推荐指数
2
解决办法
2万
查看次数

在Python中生成非常大的文本文件的时间性能

我需要生成一个非常大的文本文件.每一行都有一个简单的格式:

Seq_num<SPACE>num_val
12343234 759
Run Code Online (Sandbox Code Playgroud)

我们假设我将生成一个包含1亿行的文件.我尝试了两种方法,令人惊讶的是它们提供了非常不同的时间性能.

  1. 对于超过100米的循环.在每个循环中我创建短字符串seq_num<SPACE>num_val,然后我将其写入文件.这种方法需要花费很多时间.

    ## APPROACH 1  
    for seq_id in seq_ids:
        num_val=rand()
        line=seq_id+' '+num_val
        data_file.write(line)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对于超过100米的循环.在每个循环中我创建短字符串seq_num<SPACE>num_val,然后将其附加到列表中.当循环结束时,我迭代列表项并将每个项写入文件.这种方法花费的时间少得多.

    ## APPROACH 2  
    data_lines=list()
    for seq_id in seq_ids:
        num_val=rand()
        l=seq_id+' '+num_val
        data_lines.append(l)
    for line in data_lines:
        data_file.write(line)
    
    Run Code Online (Sandbox Code Playgroud)

注意:

  • 方法2有2个循环而不是1个循环.
  • 我在循环中写入方法1和方法2的文件.因此这两个步骤必须相同.

所以方法1必须花费更少的时间.什么提示我缺少什么?

python algorithm performance large-files large-data

12
推荐指数
3
解决办法
1085
查看次数

strptime() 参数 1 必须是 str,而不是系列时间序列转换

我使用 datetime 从 json 中读取时间,单个时间的代码运行良好,

 import datetime
 data=datetime.datetime.strptime('Apr 12, 2018', '%b %d, Y').strftime('%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将其应用到数据框中时,出现错误。

 df_newtime=datetime.datetime.strptime(old_df['oldDate'],'%b %d, %Y').strftime('%m/%d/%Y')
Run Code Online (Sandbox Code Playgroud)

错误是 TypeError: strptime() argument 1 must be str, not Series

python datetime pandas

8
推荐指数
1
解决办法
2万
查看次数

使用硒或要求填写表格

我试图进入此站点以检索我的银行帐户,首先我尝试使用硒,但仅填写了用户名(可能是因为它具有2种形式):

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.santandertotta.pt/pt_PT/Particulares.html")
user = driver.find_element_by_name("usr")
user.send_keys("user")
pas = driver.find_element_by_name("claveConsultiva")
pas.send_keys("password")
login = driver.find_element_by_id("login_button").click()
Run Code Online (Sandbox Code Playgroud)

然后,我进入了rambo模式:)试图弄清楚为什么我不能填充密码空间,以及使用请求的表单的隐藏值是什么,这是代码:

url = "https://www.particulares.santandertotta.pt/pagina/indice/0,,276_1_2,00.html"     
user_agent = {"user-agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/..."}
session = requests.session()
r = session.get(url)
soup = BeautifulSoup(r.text, "html.parser")    
data = {t['name']:t.get('value') for t in soup.find_all('input', attrs={'type': 'hidden'})}
print(data)    
Run Code Online (Sandbox Code Playgroud)

但是刚收到一个空洞的字典。通过登录和抓取进入网站的最佳方法是什么?

python selenium web-scraping python-3.x python-requests

7
推荐指数
2
解决办法
4316
查看次数

为什么Python中的属性类属性?

我正在阅读Fluent Python第19章>正确查看属性,我对以下单词感到困惑:

属性始终是类属性,但它们实际上管理类实例中的属性访问.

示例代码是:

class LineItem:

    def __init__(self, description, weight, price):
        self.description = description
        self.weight = weight  # <1>
        self.price = price

    def subtotal(self):
        return self.weight * self.price

    @property  # <2>
    def weight(self):  # <3>
        return self.__weight  # <4>

    @weight.setter  # <5>
    def weight(self, value):
        if value > 0:
            self.__weight = value  # <6>
        else:
            raise ValueError('value must be > 0')  # <7>
Run Code Online (Sandbox Code Playgroud)

根据我以前的经验,类属性属于类本身并由所有实例共享.但是在这里,weight,属性是一个实例方法,它返回的值在实例之间是不同的.如何成为类属性?不是所有类属性对于任何实例都应该是相同的吗?

我想我误解了一些东西,所以我希望得到正确的解释.谢谢!

python

7
推荐指数
1
解决办法
611
查看次数

将具有可选模板类型参数的函数传递给类构造函数并将其分配给方法

我有两个文件:main.cppcrypto.h包含模板类Crypto.在类构造函数中,我需要传递一个函数指针并将其分配给(*keyGen)方法.我需要传递的函数有一个可选的参数

template <class keyType>
class Crypto {
    private:
        keyType (*keyGen)(keyType);

    public:
        Crypto(keyType (*keyGen)(keyType)) {
            this->keyGen = keyGen;
        }

        void decode() {
            keyType foundKey;

            vector<string> output;
            keyType curKey = keyGen(); // Here keyGen has no args

            // if curKey does not decode the input
                curKey = keyGen(curKey); // Here keyGen has 1 arg of type keyType
            // else foundKey = curKey;

            // Save the decoded file
        }
};
Run Code Online (Sandbox Code Playgroud)

在main.cpp中

int keyGen(int key = -1) { // This …
Run Code Online (Sandbox Code Playgroud)

c++

6
推荐指数
1
解决办法
232
查看次数

使用后关闭会话

如何关闭像s=requests.session()在Python中创建的会话请求.我需要在调用每个API后清除变量.

应该清除变量,因为我正在尝试使用会话测试API的应用程序.

import json
import requests
import time

s=requests.session()

def Auth():
    client_id='client_id'
    client_secret='client_secret'
    username="username"
    password="password"
    postURL = "url"
    postParams = {
            "username" : username,
            "password" : password,
            "scope" : "home",
            "client_id":client_id,
            "client_secret":client_secret,
            "grant_type":"password"}
    s=requests.session()
    postResponse = s.post(postURL, data=postParams).json()
    #print(postResponse)
    accessToken = postResponse["access_token"]
    print(accessToken)
    return accessToken

def Api(accessToken):
    urlp="url"
    headers = {
        'authorization': "Bearer " + accessToken,
        'content-type': "application/json",
        }
    postParams={
        'bbox':'-130.401465,26.977875,-54.463965,54.824098',
        'years': '2017',
    }
    response = s.get(url, data=postParams, headers=headers)
    print(response.status_code)
    print(response.text)
    s.close()
    response = s.get(url, data=postParams, headers=headers)
    print(response.status_code) …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-requests

6
推荐指数
1
解决办法
1595
查看次数