问题标签 [mechanicalsoup]

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 投票
2 回答
1138 浏览

python-3.x - MechanicalSoup 亚马逊登录 Cookie 问题

我目前正在尝试使用 MechanicalSoup 登录亚马逊。我可以打开登录页面,但它告诉我需要启用 Cookie 才能继续。但是由于 MechanicalSoup 文档声明它会自动存储和发送 cookie,我不知道问题出在哪里。

这是我当前的代码:

亚马逊输出

0 投票
1 回答
803 浏览

python - MechanicalSoup 棘手的 html 表格

我对 MechanicalSoup 和 webscraping 完全陌生。我一直在努力解析 html 时间表并将其制成 icalendar (ics) 文件以在移动设备上获取它。(我已经成功完成了,耶)。

现在为了让它工作,一旦我选择了我的时间表,我就下载了时间表网站的 html。现在我需要使用 Python 来实际导航到时间表。

到目前为止,这是我的代码(我被卡住了,因为 HTML 太乱了,我不知道该怎么做,而且 MechanicalSoup 的文档还没有那么大):

在此处查看 HTML :( http://keaplan.kea.dk/sws/prodE2017/default.aspx 我想做以下事情:

并从提交的重定向中下载 html。

非常感谢您的帮助!

0 投票
0 回答
357 浏览

redirect - python机械汤重定向问题

伙计们,实际上我的代码和路由器中的重定向功能有问题,在我编写了能够找到表单并登录到路由器的代码后,我遇到了一个问题,即使用 login.cgi 登录后路由器重定向链接到http://192.168.1.2/index.asp;session_id=2dfa2490ad2e26a3d073edfdae7d0f45之类的 东西我可以理解它在链接中显示会话 ID,我需要帮助以使我的代码理解并获取我尝试过多次的链接使用 browser.get_url() 但它显示http://192.168.1.2/login.cgi

感谢你们

0 投票
1 回答
4155 浏览

python - Python Web-Scraping CSRF 令牌问题

我正在使用 MechanicalSoup 通过 Python 3.6 登录网站,但我遇到了 CSRF 令牌问题。

每次我请求返回 html 时,我都会阅读“无效的 CSRF 令牌:禁止”。在登录页面上搜索 html,与标记相似的元素 id 最接近的匹配项是“autheticity_token”,它似乎已经用标记填充了。

我能够使用“re”模块来提取令牌并将其重新提交给具有我上面谈到的 id 但没有运气的元素。请注意,我必须通过 id 找到元素,因为没有为其提供名称(这就是为什么我的 Robobrowser 方法不起作用的原因)。

这是我认为对应于 CSRF 的元素:

在这种情况下,我将提取 "b+csp/9zR/a1yfuPPIYJSiR0v8jJUTaJaGqJmJPmLmivSn4GtLgvek0nyPvcJ0aOgeo0coHpl94MuH/r1OK5UA==" 并将其重新提交给该元素

这是我的代码,其中包含用户、密码和 url 的虚拟值

0 投票
1 回答
893 浏览

python - mechanicalsoup - 如何输入单个文本框

我试图解析的站点只有一个没有表单的输入框。我在定义单个输入框、传递地址然后提交时遇到了麻烦。

我想做的是输入一个地址,提交,获取下面的信息id="A18" title="Click to get bulk trash pick up info"并加载到 JSON 中。

Python:

0 投票
2 回答
11198 浏览

python - 使用需要登录的 python 3 抓取网站

只是关于一些抓取身份验证的问题。使用BeautifulSoup

从这里的输出,我认为很重要:

这可以很好地抓取网站,但需要登录。在这里,我正在使用该mechanicalsoup库:

但是它仍然不允许我登录。

有没有人使用过 python 3 的抓取工具,可以让他们抓取具有身份验证的网站?

0 投票
1 回答
463 浏览

python - Request.Response 对象不会重定向到正确的 URL

2 个月大的 Python 菜鸟在这里,

我正在使用 MechanicalSoup 在网页上填写登录表单,然后我想提交并转到用户个人资料页面。

尽管我的代码中没有任何错误,但在提交表单后,我仍然从我的新响应对象中获取主页的当前 url。而且这个repsonse对象的状态码是200,说明请求已经成功了?

这是我的代码的相关部分:

如前所述,那里的代码不会显示任何错误。并且在启动浏览器时,我可以看到表格已正确填写

感谢您的帮助:),当然还有关于我的代码的任何其他提示!

0 投票
1 回答
4825 浏览

python - 按名称选择表格,而不是使用机械汤的 id

即使在阅读了一些文档之后,我仍然无法理解机械汤的状态浏览器的select_form()作用。它需要一个ID还是需要一个名字?我使用的表单没有 id,但有名称。将使用select_form()身份证或姓名?我尝试使用的表单看起来像这样(没有 ID)。

我试过使用

stateful_browser.select_form("#userlogin")

stateful_browser.select_form("userlogin")

它一直在扔这个

更新:我尝试使用不正确的凭据对该网站进行身份验证,但遇到了同样的错误。我不太确定这意味着什么。

0 投票
1 回答
450 浏览

python - 在需要身份验证的网站上使用 urllib 下载 PDF 问题

我正在尝试获取需要用户名和密码的域后面的 pdf 文件。我可以让 MechanicalSoup 输入我的登录凭据,但是当我导航到 pdf 文件时,我可以使用 MechanicalSoups launch_browser() 很好地查看 pdf,但我无法下载 pdf。过去(当在 python 2 中为不需要身份验证的站点使用 BeautifulSoup 时)我只会将 url 传递给 urllib2,如下所示:

当我对 urllib.requests 进行类似操作时,我发现我现在必须再次输入我的登录凭据。所以我尝试了(按照这里的说明):

但是,这似乎不起作用。当我将文件名更改为“test”(删除“.pdf”)并在 chrome 中打开时,它似乎将网页写入文件,该网页说我需要单击将我重定向到登录页面的按钮。因此,为什么我尝试在上面的代码中同时使用 loginUrl 和 urlToPDF。

到目前为止,我读过的论坛似乎说上述内容应该有效。或者,考虑到我可以使用 MechanicalSoup 查看 pdf,有没有办法直接使用 MechanicalSoup 下载 pdf?

0 投票
2 回答
2009 浏览

python - 在代理后面使用 MechanicalSoup

我正在尝试使用 MechanicalSoup 在 Windows 上用 Python 构建一个简单的 webbot。不幸的是,我坐在(公司强制执行的)代理后面。我找不到为 MechanicalSoup 提供代理的方法。有这样的选择吗?如果没有,我的替代方案是什么?

编辑:按照 Eytan 的提示,我将proxies和添加verify到我的代码中,这让我更进一步,但我仍然无法提交表单:

代码挂在最后一行,submit不接受proxies作为参数。