在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正如他们在最后一行的评论中所说,你需要做什么?
有没有办法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)
上课.但这看起来很难看.还有另外一种方法吗?
我收到一个奇怪的错误:
致命异常: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 …
我在使用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 设置和运行 …
我有一个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"是否为良好做法?为什么这是一个错误?
谢谢.
如何使用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)
有没有人能够做出这个谓词的正面或反面?
有几个人试图用缓存预加载的视频数据AVPlayer或者MPMoviePlayerController,例如
最简单的方法似乎是AVExportSession在播放器上使用currentItem,但似乎没有人能够让它发挥作用.
我的问题是:是否可以通过基于磁盘的缓存支持的嵌入式HTTP服务器透明地代理设备上的视频请求?
我可以运行嵌入式Web服务器(GCDWebServer),所以我的问题是
缓存会搞砸AVPlayer试图选择最高带宽流的带宽优化代码吗?如果这是一个问题,我可以控制流,所以它只提供一个选项.
磁盘性能是否足以提供网络改进?它看起来很明显,但我已经在网上看到各种各样的文章,谈论iOS上的磁盘I/O速度有多慢.
谢谢!
是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
我认为标题解释了这一切.当用户滚动到tableview的顶部时,我希望收到通知.
我试过以下没有运气,甚至在.h文件中添加了UIScrollViewDelegate.
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
NSLog(@"ScrolledToTop");
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:如果按状态栏,我可以拨打电话.但如果我滚动到顶部则不行.很奇怪......它可能与桌面视图在到达顶部时弹跳有关吗?
有没有办法以编程方式启用断点?通常我会使用断点条件,但我需要使用符号断点。
具体来说,contentOffset我的 UIScrollView 在调用scrollToIndexPath和调用之间发生了变化reloadData。我想仅在调用scrollToIndexPath.
在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中声明出口?
我很难理解Apple ARM64函数调用约定 doc和ARM Procedure Call Standard.
当一个函数被调用时,我理解它$r0是self,并且$r2似乎是第一个函数参数.
什么在$x1?
堆栈指针是否引用超过四的第一个参数?
我有一个奇怪的问题:我有一个带有链接的TTTAttributedLabel:
"bryan"这个名字就是链接.当a UIAlertView通过此标签显示时,链接的字体会发生变化:
如您所见,链接丢失了字体大小和重量.谁看过这个吗?"背景中的链接"或其他东西是否有单独的字体属性?谢谢.
ios ×8
cocoa-touch ×3
iphone ×3
objective-c ×3
xcode ×3
django ×2
lldb ×2
python ×2
uiscrollview ×2
arm64 ×1
avfoundation ×1
avplayer ×1
clang ×1
django-views ×1
fabric ×1
ios9 ×1
nspredicate ×1
nsurlsession ×1
nullable ×1
scrapy ×1
ssh ×1
uialertview ×1
uikit ×1
uitableview ×1
xcode6 ×1