相关疑难解决方法(0)

如何在Ubuntu上设置和运行PhantomJS?

我设置了PhantomJS并将其录制到视频:https://www.dailymotion.com/video/xnizmh_1_webcam

构建说明:http://phantomjs.org/build.html

我的设置有什么问题吗?

在我设置之后,我阅读了快速入门教程并尝试编写此代码

phantomjs hello.js 
Run Code Online (Sandbox Code Playgroud)

它给了我"命令未找到"错误.我怎么解决这个问题?

linux installation ubuntu phantomjs

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

用于Python的无头浏览器(需要Javascript支持!)

我需要一个相当容易使用的无头浏览器(我仍然是相当新的Python和一般的编程),这将允许我导航到一个页面,登录到需要Javascript的表单,然后通过以下方式刮擦生成的网页搜索符合特定条件的结果,单击复选框,然后单击以下载文件.所有这些都需要Javascript.

我听到无头浏览器是我想要的 - 需求/偏好是我能够从Python运行它,并且最好是生成的脚本可以通过py2exe编译(我正在为其他用户编写这个程序).

到目前为止风车看起来很像我想要的,但我不确定.

任何想法赞赏!

javascript python screen-scraping headless-browser

52
推荐指数
4
解决办法
4万
查看次数

phantomjs page.evaluate没有登录到控制台

我是PhantomJs的新手.刚查看了这个网站上的类似帖子.我的问题是为什么'foo'没有登录到控制台或打印?

var page = require('webpage').create()
var foo = 42;

function evaluate(page, func) {
    var args = [].slice.call(arguments, 2);
    var fn = "function() { return (" + func.toString() + ").apply(this, " + JSON.stringify(args) + ");}";
    return page.evaluate(fn);
}

page.open('http://google.com', function() {
  var foo = 42;
  evaluate(page, function(foo) {
  console.log(foo);
        },foo);

});
Run Code Online (Sandbox Code Playgroud)

phantomjs

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

如何在python webdriver中为phantomjs/ghostdriver设置代理?

我试图弄清楚如何通过HTTP代理路由我的请求.

我正在初始化这样的webdriver:

user_agent = 'my user agent 1.0'
DesiredCapabilities.PHANTOMJS['phantomjs.page.settings.userAgent'] = user_agent
driver = webdriver.PhantomJS()
Run Code Online (Sandbox Code Playgroud)

我已经浏览了文档和源代码,似乎无法通过webdriver找到使用phantomjs代理服务器的方法.

有什么建议?

python proxy webdriver phantomjs ghostdriver

24
推荐指数
3
解决办法
3万
查看次数

用python生成的javascript生成的html

我需要用python抓一个站点.我获得与urlib模块的源HTML代码,但我需要也刮由一个JavaScript功能(这是包含在HTML源)中产生一些HTML代码.这个功能在网站中的作用是当你按下一个按钮时输出一些HTML代码.如何用python代码"按下"这个按钮?scrapy可以帮助我吗?我用firebug捕获了POST请求,但是当我尝试在url上传递它时,我收到403错误.有什么建议?

javascript python browser screen-scraping

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

pip uninstall上的自定义代码

我想在运行时运行一些自定义代码pip uninstall,清理在安装时创建的文件.我该怎么办呢?

我在setup.py中使用以下命令运行自定义安装代码:

from setuptools import setup
from setuptools.command.install import install

class CustomInstallCommand(install):
  def run(self):
    #Custom code here
    install.run(self)
...
setup(
  ...
  cmdclass = {
    'install':CustomInstallCommand
  }
)
Run Code Online (Sandbox Code Playgroud)

但尝试类似的setuptools.command.uninstallfrom setuptools.command.install import uninstall失败的东西,因为那些模块/名称不存在.

python pip setuptools setup.py

8
推荐指数
1
解决办法
523
查看次数

如何使用oauth2访问StackExchange API?

我正在按照这里提到的说明进行操作:https : //api.stackexchange.com/docs/authentication

但是由于没有提供任何代码,因此我无法正确理解流程。

我一直在尝试使用下面的两种方法来完成身份验证部分,但是我遇到了麻烦。

1)

import requests
from pprint import pprint

resp = requests.get('https://stackexchange.com/oauth/dialog?client_id=6667&scope=private_info&redirect_uri=https://stackexchange.com/oauth/login_success/')
pprint(vars(resp))
Run Code Online (Sandbox Code Playgroud)

2)

import oauth2 as oauth
from pprint import pprint

url = 'https://www.stackexchange.com'
request_token_url = '%s/oauth/' % url
access_token_url = '%s/' % url

consumer = oauth.Consumer(key='mykey',
                          secret='mysecret')

client = oauth.Client(consumer)


response, content = client.request(request_token_url, 'GET')

print(response, content)
Run Code Online (Sandbox Code Playgroud)

我不确定如何从这里前进?我需要使用返回的访问令牌,并使用它来查询API。样例代码确实非常有帮助!谢谢。

编辑:这是我当前使用的代码:

from requests_oauthlib import OAuth2Session
from pprint import pprint

client_id = 'x'
client_secret = 'x'
redirect_uri = 'https://stackexchange.com/oauth/login_success'
scope = 'no_expiry'

oauth = OAuth2Session(client_id, redirect_uri=redirect_uri, scope=scope) …
Run Code Online (Sandbox Code Playgroud)

python oauth-2.0 stackexchange-api

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

带有请求的"单击"按钮

我有这个小网站,我想用请求库填写表格.问题是,当填写表单数据并按下按钮时,我无法进入下一个站点(Enter不起作用).

重要的是我不能通过某种点击机器人来做到这一点.这需要完成,所以我可以在没有图形的情况下运行.

info = {'name':'JohnJohn',
        'message':'XXX',
        'sign':"XXX",
        'step':'1'}
Run Code Online (Sandbox Code Playgroud)

前三个条目名称,消息,标志是文本区域,步骤是我认为的按钮.

r = requests.get(url)
r = requests.post(url, data=info)

print(r.text)
Run Code Online (Sandbox Code Playgroud)

当我通过chrome手动发送请求时,表单数据看起来像这样:

  • 名称:JohnJohn
  • 消息:XXX
  • 登录:XXX
  • 步骤1

button元素如下所示:

<td colspan="2" style="text-align: center;">
    <input name="step" type="hidden" value="1">
    <button id="button" type="button" onclick="myClick();"
     style="background-color: #ef4023;  width: 80px; font-face: times; font-size: 14pt;">
        Wy?lij
    </button>
</td>
Run Code Online (Sandbox Code Playgroud)

如果我手动执行此操作,下一个站点具有相同的地址.

python bots web-scraping python-requests

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