问题标签 [robobrowser]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
709 浏览

python - Robobrowser 和烧瓶错误

我正在尝试为自己创建一个脚本,以便在一些分类网站上使用并从 cl 开始,我正在使用flask web 框架和robobrowser,但进展并不顺利。

目标它将采用我的预设值并将它们放入该分类网站的字段中。这似乎不是一个困难的概念,但是在阅读了 5 个小时的在线不同代码和反复试验后,我记得最好的开发人员在堆栈中......

我应该告诉你我是 Python 的新手,还有很多东西要学,所以任何帮助都将不胜感激。

我得到的错误是: assert isinstance(form, 'str') TypeError: isinstance() arg 2 must be a type or tuple of types

但我不知道如何解决这个问题并且完全迷失了。帮助!!!提前致谢

0 投票
2 回答
11670 浏览

python - 通过 Python 登录网站 - 如何处理 CSRF?

我正在使用 Python 3 作为脚本,该脚本将监视网页上用户个人资料中的更新。这个站点的登录受到 CSRF 对策的保护,这是一件好事。但是,我无法让我的脚本登录到该站点。

  • 我的方法使用mechanicalsoup

    /li>
  • 我的方法使用robobrowser

    /li>

在这两种情况下,我都会得到一个 HTTP 状态403和一条消息说CSRF verification failed. Request aborted.

  • 任何想法如何解决这一问题?
  • 有问题的表单有一个包含 CSRF 令牌的隐藏输入。我猜mechanicalsouprobobrowser将提交此输入。我对吗?还是我必须特殊对待?
  • 我认为这两个包使用的会话将处理像 cookie 之类的所有内容。有什么我错过的吗?
0 投票
1 回答
5540 浏览

python - 如何为 Python 3.4 安装 RoboBrowser

有人可以给我一个步骤分解的步骤吗?在这个网站上,http ://robobrowser.readthedocs.org/en/latest/installation.html,它说“在命令行:$ easy_install robobroswer”,用于安装步骤。这是什么意思?

0 投票
1 回答
2624 浏览

python - Python RoboBrowser - 如何从此页面获取内容

我试图在页面http://pretraga2.apr.gov.rs/ObjedinjenePretrage/Search/Search上提交表单

但是我收到错误(HTML),例如:

当前的 Python 脚本:

我试图添加标题,但没有运气。还有什么问题?

0 投票
0 回答
766 浏览

python - 在没有使用 Python 的 XML-RPC 的情况下在 wordpress 中发布帖子

过去我使用python-wordpress-xmlrpc库在 Wordpress 上发布帖子,一切顺利,但最近使用 XML-RPC.php 文件对博客进行了巨大的洪水攻击。由于我被迫禁用 API,我正在寻找一种方便的方法来通过 python 脚本发布帖子。我试过 RoboBrowser,但它缺少 AJAX 功能。我也尝试了 Requests 模块,但我不擅长分析网络流量,尤其是在涉及 HTTP 请求和 AJAX 时,因此我无法让它按我想要的方式工作;)所以如果你知道如何使用 Wordpress 和 requests 模块,请帮忙:)

这段代码让我登录 wordpress 并创建一个新帖子,但由于在输入标题、内容、选择类别等时会发生大量 AJAX 请求。我非常不知所措如何处理这些数据条目并最终发布邮政。

0 投票
1 回答
500 浏览

python - 我怎么能刮这个?

我需要抓取这个页面(它有一个表单): http: //kllads.kar.nic.in/MLAWise_reports.aspx,最好使用 Python(如果不是 Python,那么是 JavaScript)。我在看像RoboBrowser(基本上是Mechanize + BeautifulSoup)和(也许)Selenium这样的库,但我不太确定如何去做。通过检查元素,它似乎是我需要填写的 WebForm。填写后,网页会生成一些我需要存储的数据。我该怎么做?

0 投票
1 回答
697 浏览

python - 使用 RoboBrowser 在单独的文件中登录功能

我正在编写一个程序/脚本来从 Hoovers.com 检索一些关键信息。我目前有 2 个文件。一个是hoovers5.py(其中包含一些类),另一个是main.py.

hoovers5.py

main.py

我已经多次测试了这段代码,如果我运行登录而不将其放入我的主文件中的函数中,则登录有效。它的工作原理是我可以执行以下操作并获得预期的解析值:

但是,一旦我为登录创建了一个功能,登录似乎并没有……坚持?hoovers5.py我是否因为正在实例化一个新浏览器而丢失了我的文件中的会话main.py?如何将我的“会话”传递给我的主脚本?我尝试创建一个名为的对象browser2 = RoboBrowser(),然后通过它打开 URL,但这也不起作用。

我是否需要 cookie(如果,我将如何执行此操作?)或者我是否需要在我的函数中返回某些内容?

0 投票
1 回答
869 浏览

python - 无法连接到python中的特定URL

我正在尝试用 Python 连接到Heathrow 奖励网站。我正在尝试使用该RoboBrowser库从页面中抓取数据,但我的连接尝试引发了ReadTimeout错误。我使用的所有其他 URL(即 Waterstones、Maximiles)都运行良好。

我已经尝试连接requestsurllib库,并得到了相同的结果。

我认为这个问题与 SSL 验证有关,所以我将其关闭,但它并没有改变任何东西。

您应该能够通过在我提到的其中一个库中连接到上面的 URL 来为自己复制问题。

0 投票
2 回答
590 浏览

python - python,无法识别身份验证 - urllib2,请求,asp.net

虽然我在这方面并不是特别先进,但我过去在使用 urrlib2、requests 和 scrapy 方面取得了一些成功,但这让我很难过。因此,经过大量搜索并将我的头撞在键盘上之后,我会继续询问。

我想获取网站的 html 源代码,但是在使用我的用户名和密码后,我不断收到一个页面,上面说我的用户名和密码错误。它们在浏览器中运行良好,并且一旦登录,源代码就很容易获得(通过浏览器)。但我似乎无法通过 python/终端获得相同的结果。我将在下面包括我的一些尝试(从这些有用的页面中获得):

使用 urllib2:

另一个版本:

并尝试使用请求:

我也尝试过使用scrapy,但无论我使用哪个库,它都会返回一个页面的html,显示我的密码/详细信息错误。我猜这与我发送的标题/授权(?)有关,但我不太确定。非常感谢任何帮助,请让我知道我可以更新哪些其他细节(我已经为此熬了半夜,所以如果这篇文章没有意义,请原谅我!)

编辑:

以下是对 Prashant 回答的回溯响应(减去密码等):

文件“/Users/Hatsaw/newpy/pras.py”,第 3 行,在 r = requests.get(URL, auth=('username','password')) 文件“/Library/Frameworks/Python.framework/Versions /2.7/lib/python2.7/site-packages/requests-2.9.0-py2.7.egg/requests/api.py”,第 67 行,在获取返回请求('get',url,params=params, **kwargs)文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests-2.9.0-py2.7.egg/requests/api.py”,第53行, 在请求返回 session.request(method=method, url=url, **kwargs) 文件”/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests-2.9.0 -py2.7.egg/requests/sessions.py”,第 468 行,在请求 resp = self.send(prep, **send_kwargs) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests-2.9.0-py2.7.egg/requests/sessions.py",第 576 行,在发送 r = adapter.send(request, **kwargs) 文件中" /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/requests-2.9.0-py2.7.egg/requests/adapters.py”,第 437 行,在发送中引发 ConnectionError( e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='website', port=80): Max retries exceeded with url: /dashboard/ (Caused by NewConnectionError(': 无法建立新连接: [Errno 8] nodename 或 servname 提供,或未知',))7/site-packages/requests-2.9.0-py2.7.egg/requests/adapters.py",第 437 行,在发送中引发 ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='网站',端口 = 80):最大重试次数超过了 url:/dashboard/(由 NewConnectionError 引起(':无法建立新连接:[Errno 8] 提供节点名或服务名,或未知'))7/site-packages/requests-2.9.0-py2.7.egg/requests/adapters.py",第 437 行,在发送中引发 ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='网站',端口 = 80):最大重试次数超过了 url:/dashboard/(由 NewConnectionError 引起(':无法建立新连接:[Errno 8] 提供节点名或服务名,或未知'))

编辑:

好的,我现在正在使用 mechanize(推荐如下),这就是我要返回的内容(不确定这是我的根本问题的另一个实例还是我无法使用 mechanize!):

文件“/Users/Hatsaw/newpy/pras2.py”,第 13 行,在 browser.form['email'] = 'email address' 文件“build/bdist.macosx-10.6-intel/egg/mechanize/_form.py ”,第 2780 行,setitem 文件“build/bdist.macosx-10.6-intel/egg/mechanize/_form.py”,第 3101 行,find_control 文件“build/bdist.macosx-10.6-intel/egg/mechanize/_form .py”,第 3185 行,在 _find_control mechanize._form.ControlNotFoundError:没有控件匹配名称“电子邮件”

编辑:

仍在为此苦苦挣扎,所以在这个项目的时间用完之前,这是最后的努力,我必须手动进入并获取所有 html!手指交叉。。

好的,所以根据 barny 的建议,我重新使用请求,并且我正在尝试向帖子提供我从成功的浏览器登录中获得的 cookie 信息。我不确定我这样做是否正确,但我正在使用:

现在,目前,我收到了内部服务器错误响应。经过一番研究,aspnet表单似乎是问题所在:

我只是想先检查一下我没有对请求做错什么,然后也许我会按照 Martijn Pieters 在上面的 SO 链接中的推荐探索 BeautifulSoup/robobrowser。

这是html的表单部分要求的内容:

所以。一些小问题。

  • 我的“用户/通行证”术语是否必须与源代码匹配,即用户名 = 用户名或用户?:我现在在 html 中找到了这个,但我找到了 'ctl00$cphMain$tbUsername' 和 'ctl00$cphMain $tbPassword'…</p>

  • 我需要将密码和/或用户名作为 base64.encodestring 发送吗?(我不知道这是否是一个问题,但密码包含字符,如!@$ 等)

  • 我需要添加从浏览器中找到的所有 cookie 字段还是仅添加 PHPSESSID?以下是我在 cookie 中的字段:

ASP.NET_SessionId、CFID、CFTOKEN、__atuvc、__utma、__utmb、__utmc、__utmt、__utmz、BRO_CALLME、BRO_ID、BRO_LOGIN、BRO_MEMBER、BROAUTH、ISFULLMEMBER、phpMBLink、__CT_Data、WRUID

  • 有网站 (www.website.com)、登录页面 (www.website.com/login),然后是内容 (www.website.com/content)。我认为我使用(成功登录)登录页面中的 cookie 并将其“发送”到内容页面是否正确?我应该手动执行此操作(从浏览器 cookie 信息中输入字段详细信息)还是在代码中执行此操作(因此,在下面的代码中我将使用:cookies = r_login.cookies)?

最后,这是我当前使用的返回内部服务器错误的代码..:

抱歉,这已经变得相当长了,如果我需要将它分成几个帖子,请告诉我 - 我一开始以为是一个简单的问题已经变成了别的东西!

0 投票
1 回答
485 浏览

python - 如何从标签之间提取文本?

我正在使用 robobrowser 抓取此页面,在页面内部有一个textarea标签,其中包含我需要复制和存储的信息。

这是我的代码:

我如何从

我需要XXXXX他们自己的变量。