小编bca*_*tle的帖子

将Scrapy与经过身份验证(登录)的用户会话一起使用

Scrapy文档中,有以下示例说明如何在Scrapy中使用经过身份验证的会话:

class LoginSpider(BaseSpider):
    name = 'example.com'
    start_urls = ['http://www.example.com/users/login.php']

    def parse(self, response):
        return [FormRequest.from_response(response,
                    formdata={'username': 'john', 'password': 'secret'},
                    callback=self.after_login)]

    def after_login(self, response):
        # check login succeed before going on
        if "authentication failed" in response.body:
            self.log("Login failed", level=log.ERROR)
            return

        # continue scraping with authenticated session...
Run Code Online (Sandbox Code Playgroud)

我有那个工作,没关系.但我的问题是:continue scraping with authenticated session正如他们在最后一行的评论中所说,你需要做什么?

python scrapy

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

从基于类的通用视图中获取request.session

有没有办法request.session从基于类的视图中获取?

例如,我有

from django.views.generic.edit import FormView

class CreateProfileView(FormView):
    def form_valid(self, form):
        # --> would like to save form contents to session here

        return redirect(self.get_success_url())
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的就是as_view通过添加覆盖

def as_view(self, request, *args, **kwargs):
    self.session = request.session
    super(CreateProfileView, self).as_view(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

上课.但这看起来很难看.还有另外一种方法吗?

django django-views

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

iOS 9:崩溃 - [_ NSXPCDistantObject methodSignatureForSelector:]

我收到一个奇怪的错误:

致命异常:NSInvalidArgumentException*** - [_ NSXPCDistantObject methodSignatureForSelector:]:没有为名为com.apple.nsurlsessiond的服务的连接连接设置协议"

这个问题似乎只发生在iOS 9上.根据堆栈跟踪,错误是由调用触发的-[UIApplication _sendWillEnterForegroundCallbacks].

Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 6485512008 __exceptionPreprocess
1  libobjc.A.dylib                6833323904 objc_exception_throw
2  CoreFoundation                 6485511824 -[NSException initWithCoder:]
3  Foundation                     6500536092 -[_NSXPCDistantObject methodSignatureForSelector:]
4  CoreFoundation                 6485526892 ___forwarding___
5  CoreFoundation                 6484495532 _CF_forwarding_prep_0
6  CoreFoundation                 6485141004 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
7  CoreFoundation                 6485138988 _CFXRegistrationPost
8  CoreFoundation                 6485138348 ___CFXNotificationPost_block_invoke
9  CoreFoundation                 6485554212 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
10 CoreFoundation                 6484354836 _CFXNotificationPost
11 Foundation                     6500543948 -[NSNotificationCenter postNotificationName:object:userInfo:]
12 UIKit                          6577878356 -[UIApplication _sendWillEnterForegroundCallbacks]
   continues ... 
Run Code Online (Sandbox Code Playgroud)

所以看起来当应用程序进入前台时,一些观察者注册尝试nsurlsessiond通过RPC 重新连接并失败?我使用后台传输会话NSURLSession …

ios nsurlsession ios9

27
推荐指数
1
解决办法
2673
查看次数

即使我可以使用凭证SSH,Fabric也会要求输入密码

我在使用Fabric部署Django站点时遇到了一个奇怪的问题.我已经配置了两台服务器来使用密钥文件进行登录.我可以在没有密码的情况下SSH到两者.我可以正确地运行fab,

$ fab live pull
[mysite.com] Executing task 'pull'
[mysite.com] run: test -d proj
[mysite.com] run: test -d proj/.git
[mysite.com] run: git pull origin master
...
Run Code Online (Sandbox Code Playgroud)

而另一台服务器要求输入密码:

$ fab staging pull
[dev.mysite.com] Executing task 'pull'
[dev.mysite.com] run: test -d proj
[dev.mysite.com] Login password: 
Run Code Online (Sandbox Code Playgroud)

fabfile非常明确地设置

def staging():
    env.hosts = ['dev.mysite.com']
    env.user = 'bamboo'
    env.key_filename = '~/.ssh/id_dsa_bamboo'
Run Code Online (Sandbox Code Playgroud)

并直接从命令行运行ssh工作

$ ssh bamboo@dev.mysite.com -i ~/.ssh/id_dsa_bamboo
Last login: Wed Apr 11 06:24:28 2012 from xxx.xxx.xx.xx
[bamboo@dev ~]$ 
Run Code Online (Sandbox Code Playgroud)

我也尝试env.use_ssh_config = True使用~/.ssh/configset 设置和运行 …

python django ssh fabric

23
推荐指数
2
解决办法
9107
查看次数

XCode6:接收错误"在框架模块中包含非模块化头"

我有一个iOS应用程序,包括一个应用程序,一堆我的自定义框架,以及一堆第三方framweorks:

App
    MyFramework1
    MyFramework2
        AFNetworking.framework
        Mantle.framework
        ..
Run Code Online (Sandbox Code Playgroud)

我得到错误"在框架模块中包含非模块化头",具有以下结构:

App/AppDelegate.m
#import <MyFramework2/MyFramework2.h>

MyFramework2/MyFramework2.h
#import "MyClass.h"

MyClass.h
#import <Mantle/Mantle.h>        <-- Error happens here
Run Code Online (Sandbox Code Playgroud)

MyFramework2建立本身.

尝试构建应用程序失败,并在导入Mantle.h的行中出现 " 框架模块中包含非模块化头文件" 错误.

如果我在.m文件中导入Mantle.h,这个问题就消失了,但我不能这样做,因为我的类继承自MTLModelMantle中定义的.

此问题已在此处解决,但它不是特定于Swift的.

建议有(1)确保所有自定义框架标题都是公共的.他们是.(2)转到"目标"下的"构建设置",并设置"允许框架模块中的非模块化包含" YES.

有谁知道为什么会这样,以及如何解决它?将"允许非模块化包含在框架模块中"设置为"YES"是否为良好做法?为什么这是一个错误?

谢谢.

xcode clang ios-frameworks xcode6

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

如何使用带有PHFetchOptions的NSPredicate按媒体子类型进行过滤

如何使用NSPredicatewith 过滤媒体子类型PHFetchOptions?我正在尝试排除慢速(高帧速率)和时间推移视频.当我尝试使用该predicate字段时,我一直得到奇怪的结果PHFetchOptions.

我的手机有一堆(120+)常规视频和一个慢动作视频.当我从Apple的文档中运行示例时,我得到了正确的结果:1个慢动作视频.

PHFetchOptions *options = [PHFetchOptions new];
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) != 0 || (mediaSubtype & %d) != 0", PHAssetMediaSubtypeVideoTimelapse, PHAssetMediaSubtypeVideoHighFrameRate];
Run Code Online (Sandbox Code Playgroud)

但我试图排除慢动作,而不是选择它.但是如果我否定过滤条件,我会得到零结果:

options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];

<PHFetchResult: 0x1702a6660> count=0
Run Code Online (Sandbox Code Playgroud)

令人困惑的是,Apple文档将字段的名称列为mediaSubtypes(带有"s"),而它们的样本谓词是过滤的mediaSubtype(没有"s").

尝试过滤mediaSubtypes会产生错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do bit operators on non-numbers'
Run Code Online (Sandbox Code Playgroud)

有没有人能够做出这个谓词的正面或反面?

cocoa-touch objective-c nspredicate ios photosframework

12
推荐指数
1
解决办法
1968
查看次数

使用嵌入式HTTP代理缓存流视频?

有几个人试图用缓存预加载的视频数据AVPlayer或者MPMoviePlayerController,例如

最简单的方法似乎是AVExportSession在播放器上使用currentItem,但似乎没有人能够让它发挥作用.

我的问题是:是否可以通过基于磁盘的缓存支持的嵌入式HTTP服务器透明地代理设备上的视频请求?

我可以运行嵌入式Web服务器(GCDWebServer),所以我的问题是

  1. 缓存会搞砸AVPlayer试图选择最高带宽流的带宽优化代码吗?如果这是一个问题,我可以控制流,所以它只提供一个选项.

  2. 磁盘性能是否足以提供网络改进?它看起来很明显,但我已经在网上看到各种各样的文章,谈论iOS上的磁盘I/O速度有多慢.

谢谢!

iphone mpmovieplayercontroller avfoundation ios avplayer

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

observeValueForKeyPath总是从主线程调用吗?

observeValueForKeyPath始终从主线程调用?

我正在记录电话

-(void) observeValueForKeyPath:(NSString *)keyPath
                      ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
    NSLog(@"KVO: isMainThread %d", [NSThread isMainThread]);
    // ...
}
Run Code Online (Sandbox Code Playgroud)

它似乎1每次打印,但我无法在文档中找到任何保证.任何人都可以证实这是事实吗?

multithreading cocoa-touch objective-c key-value-observing ios

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

如何让scrollViewDidScrollToTop在UITableView中工作?

我认为标题解释了这一切.当用户滚动到tableview的顶部时,我希望收到通知.

我试过以下没有运气,甚至在.h文件中添加了UIScrollViewDelegate.

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
    NSLog(@"ScrolledToTop");
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:如果按状态栏,我可以拨打电话.但如果我滚动到顶部则不行.很奇怪......它可能与桌面视图在到达顶部时弹跳有关吗?

iphone uitableview uiscrollview

5
推荐指数
1
解决办法
6824
查看次数

XCode:以编程方式启用符号断点?

有没有办法以编程方式启用断点?通常我会使用断点条件,但我需要使用符号断点。

具体来说,contentOffset我的 UIScrollView 在调用scrollToIndexPath和调用之间发生了变化reloadData。我想仅在调用scrollToIndexPath.

xcode uiscrollview uikit ios lldb

5
推荐指数
1
解决办法
934
查看次数

IBOutlet属性是否应标记为可空或非空?

在Objective-C中,我习惯于声明连接到Interface Builder的属性

@property (nonatomic, weak) IBOutlet UIView *myView; 
Run Code Online (Sandbox Code Playgroud)

现在我有一个使用新的XCode可空性属性的类.为了保持与Swift的兼容性,应该IBOutlet具有哪些可空属性?根据Apple的" 使用Swift with Cocoa和Objective-C ":

当您在Swift中声明一个插座时,您应该将插座的类型设置为隐式解包的可选项.这样,您可以让故事板在初始化后在运行时连接出口.从故事板或xib文件初始化类时,可以假定插座已连接.

这是否意味着应该nonnull在Objective-C中声明出口?

xcode cocoa-touch nullable objective-c ios

5
推荐指数
1
解决办法
1111
查看次数

在iPhone ARM64调用约定中,什么是寄存器$ x1?

我很难理解Apple ARM64函数调用约定 doc和ARM Procedure Call Standard.

当一个函数被调用时,我理解它$r0self,并且$r2似乎是第一个函数参数.

什么在$x1

堆栈指针是否引用超过四的第一个参数?

iphone ios lldb arm64

4
推荐指数
1
解决办法
1889
查看次数

当UIAlertView呈现时,TTTAttributedLabel链接字体更改

我有一个奇怪的问题:我有一个带有链接的TTTAttributedLabel:

在此输入图像描述

"bryan"这个名字就是链接.当a UIAlertView通过此标签显示时,链接的字体会发生变化:

在此输入图像描述

如您所见,链接丢失了字体大小和重量.谁看过这个吗?"背景中的链接"或其他东西是否有单独的字体属性?谢谢.

nsattributedstring uialertview ios tttattributedlabel

4
推荐指数
1
解决办法
577
查看次数