我正在使用python 的simpleSalesforce库来查询 SalesForce。
我正在查看 SalesForce 中的两个不同对象:帐户和机会(父子)。机会对象中有一个 accountId。
我正在尝试在两者之间执行内部联接并选择结果(两个对象的字段)。正常的 SQL 语句如下所示:
SELECT acc.Name, opp.StageName
FROM Account AS acc
JOIN Opportunity AS opp ON acc.Id = opp.AccountId
Run Code Online (Sandbox Code Playgroud)
我不知道如何将这种查询转换为 SOQL。
如何在 GridSearchCV 中单独缩放每个折叠?
在训练 ML 模型时,我们应该对训练数据的特征进行标准化(缩放)。然后在测试数据上使用拟合的缩放器。但如果使用网格搜索 CV(5 倍),我们通常会为其提供已经缩放的训练数据。然后将其分成折叠。但是我们如何分别缩放每个 4-1 折叠呢?
scl = MinMaxScaler()
scl.fit_transform(X_train)
scl.transform(X_test)
# The training data was scaled all together and
# not train and validation separately
cv = GridSearchCV(MODEL, GRID, scoring='f1', cv=5)
cv.fit(X_train, Y_train)
Run Code Online (Sandbox Code Playgroud)
如果您对如何实现这样的目标有任何建议,请告诉我。
我正在尝试抓取某个网站,我们将其称为“https://some-website.com”。在过去的几个月里,我能够毫无问题地做到这一点,但几天前我注意到抓取工具不再工作,因为所有请求都返回 403 禁止状态。
在过去的三个月里,我使用下面的代码来抓取数据。
import requests
from fake_useragent import UserAgent
res = requests.get(<url>, headers={'User-Agent': UserAgent().random})
Run Code Online (Sandbox Code Playgroud)
这总是返回一个很好的 200 OK 和我需要的页面。直到几天前,我开始收到 403 Forbidden 错误。在返回文本中的某处,我可以发现一句话“启用 JavaScript 和 cookies 以继续”。
正如您在代码中看到的,我已经随机切换了用户代理标头,这通常是解决此类问题的建议。
当然,我怀疑他们将我的 IP 列入黑名单(可能与某些用户代理结合使用,不允许我抓取)。然而,我实现了一个使用代理的解决方案,但仍然得到 403。
import requests
from fake_useragent import UserAgent
proxies = {
"https": f'http://some_legit_proxy',
"http": f'http://some_legit_proxy',
}
res = requests.get(<url>, headers={'User-Agent': UserAgent().random}, proxies=proxies)
Run Code Online (Sandbox Code Playgroud)
该代理是住宅代理。
最让我困惑的是,如果我删除随机用户代理部分并使用默认请求用户代理,那么抓取会突然起作用。
import requests
res = requests.get(<url>) # 'User-Agent': 'python-requests/2.28.1'
# 200 OK
Run Code Online (Sandbox Code Playgroud)
这告诉我,这并不意味着网站突然需要 javascript,因为抓取确实有效,只是看起来它们以某种方式阻止了我。
我有一些想法来解决这个问题,但由于我不明白这是如何发生的,所以我无法确定这在未来是否可以扩展。
请帮助我了解这里发生了什么。