问题标签 [mechanize-python]

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 回答
536 浏览

python - 无法使用机械化或请求解析 HTML

我正在尝试获取/查看某个网站的 HTML 代码,但是我无法这样做,下面是我的代码的片段和我得到的输出

输出

更新我在我的脚本中使用了 tidylib,如下所示

错误的输出是: -

笔记

- 当我使用 FF 或其他浏览器查看页面源代码时,我注意到了这个消息

-我尝试了最新的beautifulsoup4 4.3.1,但得到了相同的结果

-我也得到与请求库相同的结果。

- 它看起来类似于这篇文章 Python 无法使用 urllib 或 mechanize 检索表单, 但不适用于我

请帮忙

0 投票
1 回答
109 浏览

python - 有没有办法判断使用 Mechanize 打开的页面是否没有返回“搜索结果”?

我正在使用 Mechanize 登录网站并进行搜索。提取我想要的链接/信息后,我递归地从当前页面移动到下一页的下一页。我想知道是否有一种简单的方法可以判断——例如基于标题信息——是否存在“未找到结果”或类似页面。如果是这样,我可以快速检查“404”或无结果页面的标题,然后返回。

我在文档中找不到它,据我所知答案是否定的。这里的任何人都可以更肯定地说,但是,答案是否实际上是否?提前致谢。

(目前,在我 .read() 链接之后,我只是为“无结果”做一个 .find()。)

笔记:

1)“好”页面的标题信息(带有结果):

2)来自“坏”的标题信息(无结果页面)

0 投票
1 回答
43 浏览

python - 更好的方式来验证服务

我正在使用 python-mechanize 学习网络抓取。目前,要进入安全站点,我一直在手动将数据输入表单然后提交。像这样:

我假设在后台,这是作为“GET”或“POST”请求发送到服务器的,并且我输入的信息被编码在一个 url 中。有没有办法让我找出这个 url 的格式,以便我自己对信息进行编码?我正在使用 chrome,能够以某种方式识别表单提交请求的结构会很棒。

0 投票
2 回答
16526 浏览

python - 发送带有机械化和请求的 POST。

我正在尝试使用 mechanize 发送 POST 但是我的代码有时无法正常工作(我知道为什么)。我用过mechanize、twill 和requests。对于机械化和斜纹布,它正在工作,而对于要求,它不是。可能我做错了。

我的机械化代码。以下作品:

我的斜纹码。它也有效:

据我了解,机械化或斜纹首先获取页面,填写表格并发送表格。但这里的问题是,有时目标页面显示随机页面,没有任何形式。在那种情况下,我得到一个错误,显然是因为没有表格可以显示。我不想处理这个错误,因为我已经知道帖子 URL。即使显示了一些随机页面,在我单击下一步后,也会加载相同的表单。POST url,字段都保持不变。所以我想直接发送 POST 请求,因为我已经知道所有需要的细节。这是我的代码,基于

我收到一个错误:

我对请求进行了同样的尝试。但我收到与上述相同的错误。这是代码:

所以我在这里和那里戳了戳,阅读了更多在线可用的代码,我认为它不起作用,因为要防止 CSRF。所以我用斜纹布去了同一页,做了showforms,发现token有一些价值:

在此处输入图像描述

这是我想要的:

  1. 使用 mechanize 和 requests 进行 POST(无需先下载页面)
  2. 如何处理 CSRF 令牌?
  3. 如何调试'urlopen错误[Errno 61]连接被拒绝'
0 投票
1 回答
282 浏览

python - 机械化:第一种形式有效,然后是“未知的 GET 形式编码类型'utf-8'”

我正在尝试从 EUR-Lex 网站填写 2 个表格,以便从生成的网页中记录一些数据。我被困在表格#2。我觉得这应该很容易,并且我已经研究了一些,但没有运气。

直到这里一切似乎都正常,因为我将正确页面的源代码保存到文件中。但是之后...

一切都在这里停止:

br.enctype在选择第一种和第二种形式之前检查过。我得到的是:

  • 第一种形式之后:application/x-www-form-urlencoded
  • 在第二种形式之后:utf-8

我不知道这里发生了什么。

0 投票
1 回答
224 浏览

redirect - 进口未解决:机械化

我正在做一个需要从网页中检索信息的项目。由于网页使用 javascript 重定向,我的朋友建议我在 Python 中使用 mechanize。(任何人都可以确认 mechanize 可以处理 javascript 重定向或建议更好的 HTML 解析器吗?)无论如何,我通过 Python 脚本安装了 easy_install,然后在命令提示符下成功运行了“easy_install mechanize”。但是,当我这样做时:

我收到以下错误:

我读到这可能是因为我需要将我的脚本文件夹添加到我认为我拥有的环境路径中。作为 HTML 解析的初学者,我发现 mechanize 安装说明和故障排除页面非常复杂,因此我们将不胜感激!

0 投票
1 回答
887 浏览

python - Python Beautiful Soup 解析 UTF-8 编码表(使用 mechanize)

我正在尝试解析以 UTF-8 编码的下表(这是其中的一部分):

我的代码是:

我收到以下错误:

0 投票
1 回答
209 浏览

python - 测试文件是否可通过 URL 获得的最佳方法?

我正在编写一个脚本来 DL 来自各个节目主持人的 BBC 播客的整个集合。我的脚本使用 BS4、Mechanize 和 wget。

我想知道如何测试对 URL 的请求是否会从服务器产生“404”响应代码。我写了以下函数:

我将我的Browser()对象和一个 URL 字符串传递给它。它返回True或者False取决于响应是“404”还是“200”(实际上,如果它不是“200”,则 Mechanize 抛出和异常,因此是异常处理)。

main()我基本上循环遍历这个函数,从我用 BS4 抓取的 URL 列表中传入一些 URL。当函数返回时,True我继续下载 MP3 文件wget

然而。我的问题是:

  • URL 是远程服务器上播客 MP3 文件的直接路径,我注意到当 URL 可用时, br.open(<URL>)会挂起。我怀疑这是因为 Mechanize 正在从服务器缓存/下载实际数据。我不想要这个,因为如果响应代码是“200”,我只想返回 True。我怎样才能不缓存/DL 而只是测试响应代码?

我尝试过使用,br.open_novisit(url, data=None)但挂起仍然存在......

0 投票
1 回答
235 浏览

python - 在 Mechanize - Python 中识别浏览器警报消息

我正在尝试在 python 中开发一个小型自动化工具,可以检查 Web 应用程序的表单输入是否存在 XSS 漏洞。我希望使用 python mechanize 库来做到这一点,这样我就可以自动填写表单并提交并从 python 代码中获取响应。尽管 mechanize 也可用作浏览器,但有没有办法检测包含脚本的输入的浏览器警报消息。或者是否有任何其他用于 python 的库,以便我可以执行此功能。任何示例代码都将是一个很大的帮助。

PS:我正在尝试开发它,以便我可以在我们正在开发的应用程序中找到它们并将它们包含在报告中,而不是用于黑客目的。

谢谢你。

0 投票
1 回答
482 浏览

beautifulsoup - 将结果从 mechanize 传递到 BeautifulSoup

当我尝试在以下代码中混合 mechanize 和 BeautifulSoup 时,我得到了一个:

从一开始到 br.submit() 的代码在 mechanize 和 BeautifulSoup 的 for 循环中都可以正常工作。但我不知道如何将 br.submit() 的结果传递给 BeautifulSoup。2行:

显然是错误的。我收到一个关于汤 = BeautifulSoup(content) 的错误:

TypeError:预期的字符串或缓冲区

任何人都可以帮忙吗?