小编Bla*_*ard的帖子

urllib.request.urlopen返回字节,但我无法解码它

我尝试使用解析网页urllib.requesturlopen()方法,如:

from urllib.request import Request, urlopen
req = Request(url)
html = urlopen(req).read()
Run Code Online (Sandbox Code Playgroud)

但是,最后一行以字节为单位返回结果.

所以我尝试解码它,如:

html = urlopen(req).read().decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

但是,发生了错误:

UnicodeDecodeError:'utf-8'编解码器无法解码位置1中的字节0x8b:无效的起始字节.

通过一些研究,我找到了一个相关的答案,解析charset决定解码.但是,该页面不会返回字符集,当我尝试在Chrome Web Inspector上进行检查时,其标题中会写入以下行:

<meta charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

那么为什么我不能解码呢utf-8?我如何成功解析网页?

网站URL是http://www.vogue.com/fashion-shows/fall-2016-menswear/fendi/slideshow/collection#2,我想将图像保存到我的磁盘.

请注意,我使用的是Python 3.5.1.我还注意到我上面写的所有工作在我的其他抓取程序中运行良好.

python decode urllib urlopen python-3.x

3
推荐指数
1
解决办法
3399
查看次数

如何在 Hammerspoon 中打开目录?

我想用键盘快捷键在 Hammerspoon 上打开一个目录。为了通过快捷方式打开任何应用程序,您可以使用以下命令:

hs.hotkey.bind({"ctrl"}, "n", function()
    hs.application.launchOrFocus("Safari")
    end
)
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于文件系统。例如,如果您要打开~/Dropbox,您应该用什么方法打开应用程序?

lua hammerspoon

3
推荐指数
1
解决办法
1258
查看次数

由于文件不存在,命令“jupyter lab”不起作用

jupyter lab我安装了 Jupyter Lab,但由于以下错误而无法启动它 ( ): Errorexecuting Jupyter command 'lab': [Errno 2] No such file or directory

但是,它已安装,并显示为可用子命令之一(通过jupyter lab):

可用子命令:bundlerextension console kernelspec lab labextension labhub migrate nbconvert nbextension Notebook qtconsole run serverextension Troubleshoot trust

为什么它不起作用,我在这里缺少什么吗?jupyter notebook工作没有任何问题。我还jupyter serverextension enable --py jupyterlab --sys-prefix根据Github上的文档添加了,仅供参考。

我的工作环境:

jupyter notebook --version # 5.0.0
jupyter version # 4.3.0
Run Code Online (Sandbox Code Playgroud)

python jupyter jupyter-lab

3
推荐指数
1
解决办法
7893
查看次数

如何使用Selenium和Firefox自动下载可执行文件?

当我点击Firefox中的链接时,我正在使用Selenium Webdriver和C#自动下载可执行文件.理想情况下,我也想执行该文件但是现在,我想下载并稍后执行它.这是我到目前为止所拥有的:

FirefoxProfile profile = new FirefoxProfile();
profile.AcceptUntrustedCertificates = true;
profile.SetPreference("browser.download.folderList", 2);
profile.SetPreference("browser.download.manager.showWhenStarting", false);
profile.SetPreference("browser.download.dir", "c:\\Test");
profile.SetPreference("browser.helperApps.alwaysAsk.force", false);
profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream");
IWebDriver driver = new FirefoxDriver(profile);
Run Code Online (Sandbox Code Playgroud)

当我单击该链接时,它仍然显示"保存"对话框,但如果单击"保存",它会将其保存到我的"测试"文件夹中.我正在使用Firefox 21.如何确保不显示"保存"对话框并自动下载?

c# firefox selenium selenium-webdriver

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

在iOS应用程序中的UITableViewCell中设置accessoryType和accessoryView - 可行吗?

我想设置都accessoryTypeaccessortyViewUITableViewCell我的iOS应用程序,为了让我的用户看到在每个单元的数据以及移动到详细视图的指标,使用嵌入在这两个我自己的自定义字符串UILabel作为accessoryViewUITableViewCellAccessoryDisclosureIndicator作为accessoryType.但是,Apple的Objective-C文档暗示我不能在以下行中同时使用这两个文件,我从这篇文章借用了:

讨论

如果此属性的值不是nil,则UITableViewCell类在表视图的正常(默认)状态下使用给定视图作为附件视图; 它忽略了accessoryType属性的值.提供的附件视图可以是框架提供的控件或标签或自定义视图.附件视图显示在单元格的右侧.

如果为两种状态设置,则附件视图在正常状态和编辑状态之间交叉淡入淡出; 使用editingAccessoryView属性在编辑模式下设置单元格的附件视图.如果没有为这两种状态设置此属性,则根据需要为单元格设置动画以滑入或滑出.

那么有什么方法可以同时使用我accessoryTypeaccessortyView我的UITableViewCell?我希望实现类似以下的功能,而不是使用detailTextLabel我的数据.


[textLabel    dataLabel    (->)] # this is header just to illustrate my point

[Michael    San Francisco  (->)]
[Kevin      New York       (->)]
Run Code Online (Sandbox Code Playgroud)

我刚刚意识到iOS默认手机应用程序用于accessoryView显示日期以及accessoryType- 这正是我想要做的.

objective-c uitableview ios

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

在iOS应用程序中发出`pod install`之后抛弃CocoaPods是否可行?

我已经pod install在我的iOS应用程序中执行了,但是我怎么能抛弃整个cocoapods控件并恢复到我的应用程序根本不使用cocodapods的状态?这就是我所做的:

创建以下命名Podfile并运行的文件pod install

platform :ios, '7.0'
pod 'SVProgressHUD'
Run Code Online (Sandbox Code Playgroud)

但是,我后来意识到我不会使用这个包,所以现在我想将它恢复到以前的状态.只是删除Pod相关的文件和目录没有成功...

那么回归还是可行的吗?或者我是否必须从创建新项目的角度创建我的应用程序?

xcode ios cocoapods

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

如何在Swift中调用`setViewControllers:animated:`?

当用户点击按钮时,我尝试在导航控制器中更改我的视图控制器,因此我声明了以下代码:

if standingsViewController == nil {
   standingsViewController = StandingsViewController()
   splitViewController!.delegate = standingsViewController
}
var vc = splitViewController!.viewControllers[1] as UINavigationController
vc.setViewControllers([standingsViewController], animated: true)
Run Code Online (Sandbox Code Playgroud)

但是,这会导致错误:fatal error: attempt to bridge an implicitly unwrapped optional containing nil在最后一行.

UINavigationControllersetViewControllers: animated:方法是在Swift中正确定义的,那么如何解决问题呢?

当我尝试将其更改为您的信息时[standingsViewController]!,它甚至没有通过编译,因为[AnyObject] is not identical to [AnyObject]!.

我在Swift中使用Xcode 6.1 beta.

uinavigationcontroller ios swift

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

是否可以在 R 中启动时自动执行命令?

我从 GUI 应用程序 (R.app) 中使用 R。当我打开应用程序时,它会从工作目录加载一些数据(例如.Rapp.history.RData)。但是,是否可以在启动时自动执行某些命令或功能?

我只想加载一些库,例如ggplot2or plyr,我总是在我的会话中使用它们。

r

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

使用segue时,在Cocoa app中打开Preferences Pane的无限窗口

我想在用户点击Preferences...菜单或键入+ 时在我的Cocoa应用程序中打开首选项窗格,.所以我从首选项菜单项连接到故事板中的窗口控制器作为showsegue.

但是,虽然这会在用户点击时打开首选项窗格Preferences...,但如果用户在关闭窗格之前再次点击菜单项,则另一个窗格将启动并显示在屏幕上.

我想在屏幕上只有一个偏好设置面板,但我该怎么办呢?我想只在故事板上进行设置,避免编码使得无聊菜单项的嵌套...

macos cocoa nsmenuitem segue

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

在极低规格的机器上运行`npm install`

我想将我的node.js应用程序托管在Google Compute Engine上,并尽可能使用最低的CPU(1个vCPU,0.6GB)。但是,似乎因为它的性能和内存都差强人意,所以当我尝试npm install --production通过SSH在VM上运行时,安装一直挂了很长时间,然后就被杀死了:

$ npm install --production

cloneCurrentTree ? gunzTa ? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Killed
Run Code Online (Sandbox Code Playgroud)

第一行是我的命令,最后两行是输出。我在另一个性能稍佳的虚拟机(1个vCPU,1.7GB)上进行了尝试,安装顺利进行。我在每个VM上都尝试了两次,以供参考。

所以我的问题是:是否有可能npm install在极其恶劣的机器环境上?

node.js npm google-compute-engine

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