小编ale*_*cxe的帖子

是否可以通过Scrapy中的CSS属性定位元素?

我想知道Scrapy是否有基于CSS中定义的颜色来刮取数据的方法.例如,选择所有元素background-color: #ff0000.

我试过这个:

response.css('td::attr(background-color)').extract()
Run Code Online (Sandbox Code Playgroud)

我期待一个列表,其中包含为表数据元素设置的所有背景颜色,但它返回一个空列表.

通常可以通过Scrapy中的CSS属性定位元素吗?

html css python scrapy

10
推荐指数
2
解决办法
557
查看次数

如何在unittest中使用assert_frame_equal

unittest包新手.我正在尝试通过以下代码验证函数返回的DataFrame.即使我将输入硬编码assert_frame_equal为等于(pd.DataFrame([0,0,0,0])),单位测试仍然失败.有人想解释它为什么会发生吗?

import unittest
from pandas.util.testing import assert_frame_equal
class TestSplitWeight(unittest.TestCase):
    def test_allZero(self):
        #splitWeight(pd.DataFrame([0,0,0,0]),10)
        self.assert_frame_equal(pd.DataFrame([0,0,0,0]),pd.DataFrame([0,0,0,0]))

suite = unittest.TestLoader().loadTestsFromTestCase(TestSplitWeight)
unittest.TextTestRunner(verbosity=2).run(suite)
Run Code Online (Sandbox Code Playgroud)
Error: AttributeError: 'TestSplitWeight' object has no attribute 'assert_frame_equal'

python unit-testing pandas python-unittest

10
推荐指数
2
解决办法
7552
查看次数

使用Django在LDAP中创建用户

我在使用LDAP身份验证模块django-auth-ldap时遇到问题.我正在使用此站点的示例配置:http://packages.python.org/django-auth-ldap/

我想做两件事:

1)针对LDAP进行身份验证:目前,我的LDAP数据库是空的,我没有添加任何内容,实际上我不知道如何.但是,我仍然能够使用存储在我的django数据库中的旧登录/密码登录到基于django的站点.这是为什么?这不应该被忽略,不应该使用LDAP用户/密码进行登录过程吗?换句话说,如果我的LDAP数据库为空,那么我的每次登录都不应该失败吗?但是,它没有,我的印象是django完全忽略了django-auth-ldap模块.

2)使用django同步LDAP(而不是相反)我不想使用现有的用户数据库进行身份验证.我希望能够在Django中创建新用户并将这些用户传播到LDAP,这样他们就可以被其他服务共享,在我的例子中是一个openfire服务器.你是怎么用django-auth-ldap那样做的?

这是我的配置的复制/粘贴:

# Baseline configuration.
AUTH_LDAP_SERVER_URI = "127.0.0.1"

AUTH_LDAP_BIND_DN = "cn=admin,dc=nodomain"
AUTH_LDAP_BIND_PASSWORD = "admin"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=nodomain",
    ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

# Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=nodomain",
    ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")

# Only users in this group can log in.
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=nodomain"

# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
    "first_name": "givenName",
    "last_name": "sn",
    "email": "mail"
}

AUTH_LDAP_PROFILE_ATTR_MAP = {
    "employee_number": "employeeNumber"
} …
Run Code Online (Sandbox Code Playgroud)

authentication django ldap backend django-auth-ldap

9
推荐指数
1
解决办法
4948
查看次数

对不仅仅由数字组成的单词的Python列表理解

在高层次上,我想要完成的是:

given a list of words, return all the words that do not consist solely of digits
Run Code Online (Sandbox Code Playgroud)

我第一次想到如何做到这一点是:

import string
result = []
for word in words:
    for each_char in word:
        if each_char not in string.digit:
            result.append(word)
            break
return result
Run Code Online (Sandbox Code Playgroud)

这很好用.为了更加Pythonic,我想 - 列表理解,对吗?所以:

return [word for word in words for char in word if not char in string.digits]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会word为每个不是数字的字符添加结果副本.所以f(['foo']),我最终得到了['foo', 'foo', 'foo'].

有没有一种聪明的方法可以做我想做的事情?我目前的解决方案是编写一个is_all_digits函数,然后说[word for word in words if not is_all_digits(word)].我的一般理解是列表推导允许这种操作是声明性的,并且辅助函数对我来说是充分的声明; 只是好奇是否有一些聪明的方法使它成为一个复合语句. …

python list-comprehension list

9
推荐指数
1
解决办法
496
查看次数

Openpyxl和隐藏/取消隐藏的Excel工作表

我有以下代码从制表符分隔的文本文件中读取数据,然后将其写入现有Excel工作簿中的指定工作表.变量"workbook","write_sheet"和"text_file"由用户输入

tab_reader = csv.reader(text_file, delimiter='\t')
xls_book = openpyxl.load_workbook(filename=workbook)
sheet_names = xls_book.get_sheet_names()
xls_sheet = xls_book.get_sheet_by_name(write_sheet)
for row_index, row in enumerate(tab_reader):
        number = 0
        col_number = first_col
        while number < num_cols:
                cell_tmp = xls_sheet.cell(row = row_index, column = col_number)
                cell_tmp.value = row[number]
                number += 1
                col_number += 1
xls_book.save(workbook)
Run Code Online (Sandbox Code Playgroud)

但是,当我在预先存在的"工作簿"上运行此代码时,"工作表"是一个隐藏的选项卡,输出将取消隐藏选项卡.我认为原因是因为openpyxl没有修改文件而是完全创建一个新文件.是否有一种简单的方法告诉python检查工作表是否被隐藏,然后根据条件是否满足输出隐藏或未隐藏的工作表?

谢谢!

python excel openpyxl

9
推荐指数
1
解决办法
6287
查看次数

使用Protractor检查浏览器控制台中是否有错误

我正在使用Protractor来测试AngularJS

我想检查一下,在测试结束时没有发生未捕获的异常,并打印到浏览器控制台.

有一个简单的方法吗?

javascript testing selenium angularjs protractor

9
推荐指数
2
解决办法
5049
查看次数

在影子DOM中查找元素

Protractor 1.7.0引入了一个新功能:一个新的定位器by.deepCss,有助于在shadow DOM中查找元素.

它涵盖了哪些用例?您何时想要到达影子DOM中的元素?


我提出这个问题的原因是我在这个问题的动机部分缺失了 - 我认为量角器主要是一个有助于模仿真实用户交互的高级框架.访问影子树听起来像是一个非常深层次的技术问题,为什么你想这样做让我感到困惑.

selenium css-selectors selenium-webdriver shadow-dom protractor

9
推荐指数
1
解决办法
3578
查看次数

Scrapy:使用特定的HTTP服务器代码捕获响应

我们有一个非常标准的Scrapy项目(Scrapy 0.24).

我想捕获特定的HTTP响应代码,例如200,500,502,503,504等.

像这样的东西:

class Spider(...):

    def parse(...):
        processes HTTP 200

    def parse_500(...):
        processes HTTP 500 errors

    def parse_502(...):
        processes HTTP 502 errors

    ...
Run Code Online (Sandbox Code Playgroud)

我们怎么做?

python scrapy web-scraping scrapy-spider

9
推荐指数
1
解决办法
2723
查看次数

使用量角器验证文本的一部分

我想验证字符串中是否存在某些文本(使用量角器).

在我的例子中,以下代码:

element(by.css('h1.text-center')).getText();
Run Code Online (Sandbox Code Playgroud)

将导致:

ArrowGrey Slim Fit Formal Trouser -1 (Size - X)
Run Code Online (Sandbox Code Playgroud)

现在,我想验证字符串ArrowGrey Slim Fit Formal Trouser是否包含在上面的文本中.

请指教!

javascript jasmine protractor

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

Protractor- Generic等待URL改变

在之前的问题中,我已经看到等待url更改的好方法是使用:

browser.wait( function() {
    return browser.getCurrentUrl().then(function(url) {
        return /myURL/.test(url);
    });
}, 10000, "url has not changed");`
Run Code Online (Sandbox Code Playgroud)

但我试图有一个方法,我可以将myURL作为变量传递(如果我需要将其与其他网站一起使用)并且无法正常工作.

我在我的Page Object文件中尝试这个:

this.waitUrl = function(myUrl) {
    browser.wait( function(myUrl) {
        return browser.getCurrentUrl().then(function(url, myUrl) {
            return myUrl.test(url);
        });
    }, 10000, "url has not changed");
};
Run Code Online (Sandbox Code Playgroud)

如果这是可能的任何想法,如果这样做怎么办?

javascript testing automation asynchronous protractor

9
推荐指数
2
解决办法
7664
查看次数