问题标签 [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 投票
1 回答
314 浏览

python - Mechanicalsoup 在某些网站上冻结

我将 MechanicalSoup 用于自定义搜索引擎。当我尝试打开某些网站时,MechanicalSoup 会冻结,最多几个小时,并且仅在此延迟后才给出异常。有时它有效,但对于某些网站来说总是很长,例如:

我怎样才能使用机械汤而不发生这种冻结,或者我怎样才能设置一个较短的时间(例如最多 10 秒),以避免等待时间。

0 投票
1 回答
61 浏览

python-3.x - 是否可以在 HTML 表中移动并使用 BeautifulSoup4 获取数据?

因此,对于一个项目,我正在努力创建一个 API 来与我学校的课程查找器进行交互,并且我正在努力从他们存储数据的 HTML 表中获取数据,而无需使用 Selenium。我最初可以使用 Selenium 提取 HTML 数据,但我的教练说如果我使用 BeautifulSoup4 和 MechanicalSoup 库,他会更喜欢。我提交了一个搜索并抓取了存储数据的 HTML 表。我不确定如何迭代存储在 HTML 表中的数据,就像我在下面的 Selenium 代码中所做的那样。

这是我的汤代码,我想知道如何以与上面使用 Selenium 类似的方式从 HTML 中获取数据。

0 投票
1 回答
88 浏览

html - 如何使用 XPATH 解析这个 HTML 表?

我正在尝试使用 XPaths 获取 HTML 表的内容,我正在使用 Mechanicalsoup 获取表单并提交(数据在提交表单后面),一旦我点击第二个表单,我会获取 URL 并将其传递给解析,但我得到AttributeError: 'list' object has no attribute 'xpath'

我会发布我正在尝试解析的 HTML,但它非常长,而且从我所使用的其他一些网站的情况来看,它的编写非常草率

0 投票
1 回答
92 浏览

python-3.x - MechanicalSoup 可以登录到需要 SAML 身份验证的页面吗?

我正在尝试从 SSO(单点登录)站点后面下载一些文件。它似乎是经过 SAML 身份验证的,这就是我卡住的地方。一旦通过身份验证,我将能够执行返回 JSON 的 API 请求,因此无需解释/抓取。

不太确定如何在机械汤中处理这个问题(并且相对不熟悉网络编程),非常感谢您的帮助。

这是我到目前为止所得到的:

此时我得到一个页面,告诉我 javascript 已禁用,我必须单击提交才能继续。所以我这样做:

这就是我抱怨状态信息丢失的地方。

输出:

我在 SAML 登录背后的抓取中发现的唯一命中都是使用 selenium 方法(有时会下降到请求)。

这可以用机械汤吗?

0 投票
1 回答
81 浏览

beautifulsoup - 是否有使用 Mechanicalsoup 或 BeautifulSoup 在 HTML 中返回下拉列表选项的功能?

正如标题所说,我正在使用 MechanicalSoup 开展一个项目,我想知道如何编写一个函数来返回 DropDown 列表的可能选项。是否可以通过名称/id 搜索元素,然后让它返回选项?

0 投票
1 回答
115 浏览

python - Mechanicalsoup 数据未输入表格

我正在尝试使用mechanicalsoup将用户名和密码输入到表单中,这一切似乎都可以正常工作,但输入后

它只是再次返回登录页面。

我尝试在代码末尾使用 browser.launch_browser() 进行调试,它只显示登录页面,没有在用户名和密码字段中输入任何内容。

我是否完全错过了我想做的事情?登录页面是:https ://www.puregym.com/Login/ 我的代码如下:

0 投票
1 回答
75 浏览

python - How to use python to sign in to orcid.org

Problem

I'm trying to use mechanicalsoup to login to ORCID, but I'm unable to access the login form.

Attempts

This should be very straightforward:

#xA;

However, this results in a LinkNotFoundError.

I also tried simply finding any form with a non-stateful browser:

#xA;

And that yields an empty list, so it's not even seeing the form in the return. This confused me, as print(login_page.soup) returns everything, and I could see the form in there.

Question

How can I access the form and successfully login? (I'm fully open to using something other than mechanicalsoup, too.)

I imagine it has something to do with the fact that you can switch login methods on the page itself. See here:

orcid login page image

I'm very far from a frontend expert, but when I inspect the page, I imagine that's governed in some way by the events seen here:

orcid login page inspector image

If anyone can provide any help or insight, I'd certainly appreciate it. Thank you!

0 投票
1 回答
70 浏览

python - 使用机械汤进行 GEO 定位泄漏

我正在尝试使用位于德国的代理从 eBay.de 抓取一些数据我尝试了不同的网页来仔细检查它。

如果我想在没有 VPN 的情况下使用此代码,但使用我的 ip 地址位于德国以外的代理,我只得到一篇文章。

如果我尝试使用带有德国 vpn 服务器且没有代理的 VPN 进行相同的操作,我会在这里获得更多文章。有没有什么是 vpn 服务器让 ebay 更相信用户来自德国而不是代理?

代理的时区是正确的。

0 投票
1 回答
108 浏览

python - mechanicalsoup 的 StatefulBrowser 似乎在一段时间内没有正确刷新 True 循环

我使用 python 抓取特定网站(在本例中为论坛)以将最新帖子的内容复制/粘贴到其他地方。为此,我的代码看起来像这样(不是完整的代码,找到的 url 还进行了一些其他操作):

此时,我应该有最新线程的 url,它通常应该每 30 秒刷新一次,以获取新的最新帖子的 url,我用它来做一些其他操作。该技术效果很好,但有一个问题。

它确实设法在页面上获取最新帖子,但是当出现新帖子时,无论页面通过浏览器刷新的频率如何,都需要 5 分钟才能真正出现在汤元素中。打开

如果我自己通过浏览器进入论坛页面并强制刷新页面,例如,我会在 0:00 看到帖子 A 为最新,然后帖子 B 将在 0:45 出现。我希望在刷新发生时在 1:00 看到我的程序中的 url 更改,但脚本仍然返回最新的帖子 A,而帖子 B 只会在 5:30、6:00 左右显示为最新的.

页面加载更改好像花了整整 5 分钟,考虑到初始加载以正常速度发生,这很奇怪

我尝试在睡眠之前添加一个 soup.decompose() 以尝试确保浏览器在以下迭代中尝试论坛 url 时正确重置,但无济于事。我还尝试在每个循环中完全关闭 StateFull 浏览器,但这没有任何区别。我还确保日期查找逻辑是合理的,并且对我来说看起来是正确的,只是帖子 B 没有出现在汤对象中

有解决方案吗?

0 投票
1 回答
363 浏览

python - 使用onclick按钮登录网站提交

我正在尝试使用 python3.7 对需要用户电子邮件和密码才能登录的网站进行网络抓取。

登录页面的登录表单如下:

我搜索了有关登录的其他帖子,答案是使用以下内容给出的mechanicalsoup

但是,这在我的情况下不起作用,因为在表单中没有<input type="submit">类似github 的 login,而是一个<div class="register_button" onclick="submit_orthodox_login_form();">.

我还想在登录后重定向到这个链接,这是我想要进行网络抓取的实际网站。