住宅代理能指定国家吗?我们能做什么、你该问什么
住宅代理指定国家,如实说明:我们的住宅代理不能选国家;很多任务根本不需要国家;需要时该用哪条线,以及怎样盘问按城市卖住宅 IP 的服务商。
住宅代理指定国家,是指向服务商要求出口 IP 位于某个国家、地区或城市。ProxyPanda 的住宅代理不提供这个功能:出口由 IP 池决定,你的用量日志会在事后显示每条请求是从哪个国家出去的。如果任务需要指定位置,我们的 ISP 代理和数据中心代理可以选国家、地区和城市。
我们宁愿你在这里读到这一点,而不是充值之后从日志里发现。下面讲国家定位是怎么回事、怎样判断你的任务到底需不需要它、需要时该用我们的哪条产品线,以及面对按城市出售住宅出口的服务商,应该问哪些问题。
住宅代理指定国家是什么意思
住宅 IP 池是一大批家庭宽带连接。国家定位就是在这批连接里做筛选:比如你要德国的出口,网关就只给你德国的地址。地区和城市定位则筛得更细。提供这个功能的服务商,通常让你在用户名里带一个参数,或者在控制台里设置。
效果好不好,取决于两件事。
- 服务商在那个地方有多少出口。 一个国家可能有很多。一座小城市可能只有寥寥几个,而几条家庭宽带会随着路由器重启、有人关掉应用而时有时无。
- 位置是怎么判定的。 家庭 IP 本身不带位置标签。它的国家和城市来自地理定位数据库,这些数据库对国家通常判断得准,对城市就粗得多。
ProxyPanda 的住宅代理不能选国家
直说:在我们的住宅代理上,你不能选择国家、地区或城市。你能选的是随机 IP(每条请求一个新出口)和粘性 IP(在一个会话里保持同一个出口)。出口在哪里,由 IP 池决定。
你能得到的是一份记录。每条请求都会单独记一行,包括主机、出口所在的国家、状态码和字节数,整份日志可以导出为 CSV。所以你能清楚看到流量去了哪里,顺便还能核对账单;方法见怎样核对代理服务商的用量表。你不能做的,是提前指定一个地方。
住宅代理的价格在市场的低端,而这是它不做的事情之一。我们宁愿把这个限制写在价格旁边,也不愿留给你自己去发现。
你的任务需要指定国家吗?
很多时候不需要。人们买住宅代理,通常是为了过那些拒绝服务器地址的网站,而这个问题和位置毫无关系。以下情况,你多半不需要指定国家:
- 内容在哪里看都一样。 文档、论坛、公开 API、许多新闻和资料类网站。
- 市场由 URL 决定。 国家域名、语言路径,或者类似
country=的参数,往往决定了你看到哪个站点,不管你的 IP 在哪。不过要测一下:有些网站仍然会按地址跳转或调整价格。 - 你要的是覆盖面,而不是某个地方。 研究数据集或商品目录抓取,通常在意的是请求分散、有节制,而不是请求从哪里来。
几分钟就能测出来。下面的脚本用同样的请求头,分别通过两个不同国家的静态 IP 获取同一个页面,再比较可见文字。HOST_1、PORT_1、HOST_2 和 PORT_2 代表你控制台里的两个 ISP 或数据中心 IP。
import difflib
import re
import requests
URL = "https://example.com/"
EXITS = {
"country A": "http://USERNAME:PASSWORD@HOST_1:PORT_1",
"country B": "http://USERNAME:PASSWORD@HOST_2:PORT_2",
}
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Accept-Language": "en",
}
def visible_text(html):
html = re.sub(r"(?is)<(script|style).*?</\1>", " ", html)
return " ".join(re.sub(r"<[^>]+>", " ", html).split())
pages = {}
for label, proxy in EXITS.items():
reply = requests.get(URL, proxies={"http": proxy, "https": proxy}, headers=HEADERS, timeout=30)
pages[label] = visible_text(reply.text)
print(label, reply.status_code, "ended at", reply.url)
first, second = pages.values()
print(f"Similarity: {difflib.SequenceMatcher(None, first, second).ratio():.0%}")
如果两次都停在同一个 URL,相似度接近 100%,说明位置不会改变这个页面的内容,住宅 IP 池替你选哪个国家也无妨。最终 URL 不同,说明网站按国家做了跳转。相似度很低,说明内容做了本地化,这时你就需要指定位置。
什么时候确实需要指定国家
有些任务本身就是关于位置的。
- 本地化的价格和库存。 网店会按访客所在地调整价格、配送选项和库存。在你销售的市场里做价格监控,需要一个在那个市场里的地址。
- 查排名。 搜索结果因国家而异,往往也因城市而异。设置方法见排名跟踪,更详细的做法见按国家查 Google 排名。
- 广告。 要确认广告出现在你付费投放的地方,就得从那里去看,见广告核查。
- 应用商店页面。 能否下载、价格和本地化截图都因商店地区而异,而商店地区往往跟着访客所在的国家走。
- 你自己网站的地区规则。 以海外访客的视角检查跳转、币种和 Cookie 同意横幅,见地区检查。
以上这些,请用我们的 ISP 代理或数据中心代理。两者下单时都能选国家、地区和城市(前提是库存带有这一层信息),ISP 还能选宽带运营商。下单表单只列出当前能卖的,所以付款前就能看到库存;确认之前,表单也会显示总价,包括选地区或城市可能增加的费用。地区页面介绍了一些常见市场,比如美国、德国和日本。
两者选哪个?目标网站接受服务器流量,就用数据中心;目标网站筛查托管网络,或者你需要一个能用好几周的地址,就用 ISP。对比见ISP 还是数据中心代理。如果你需要在一个国家里用很多个出口,就在那里租几个静态 IP,在代码里轮流使用。
如果你的任务需要的是某一座特定城市里不断轮换的家庭出口,我们不卖这个。在你花钱之前从我们这里听到,总比事后发现好。
面对按城市出售住宅出口的服务商,该问什么
按国家、地区或城市出售住宅出口的服务商有很多。下面这些问题对哪一家都适用,靠谱的服务商都能简短地回答。
- 那座城市现在有多少个出口? 整个国家的数字说明不了一座城的情况。问问能不能在付款之前看到按城市统计的数量。
- 城市信息从哪里来? 用的是哪个地理定位数据源,有没有用第二个数据源核对?家庭 IP 的城市数据,在哪里都只是近似值。
- 城市里的出口用完了会怎样? 请求是失败、等待,还是悄悄退回到别的城市甚至整个国家?悄悄退回,意味着你的“城市”数据有一部分其实来自别处。
- 退回或失败的请求收费吗? 如果因为没有出口而请求失败,这些字节算不算钱?
- 事后能核对吗? 一份带有每条请求出口位置的日志,能让你确认自己买到的是什么。
- 出口位置错了怎么办? 问问花在错误位置上的流量能不能退。
然后自己抽查一下。取几个出口 IP,每个都用两个地理定位数据库查一遍,互相比对。国家应该一致,城市能接近就算好的了。查询方法见自己查 IP 类型,还要看哪些方面,见检查 IP 质量。
在我们的产品线上核对国家
- 住宅代理: 用量日志显示每条请求的国家。如果你在意分布情况,导出来数一数。
- ISP 和数据中心代理: 查一下你拿到的 IP。国家应该和你下单时选的一致。如果不一致,那是我们要解决的问题:诚信页面承诺,把你花在标错的 IP 上的流量记回你的账户,并把它撤下。诚信页面还写明,我们只在能核实城市的地方提供城市定位。
快问快答
ProxyPanda 的住宅代理能指定国家吗? 不能。出口由 IP 池决定,用量日志会在事后显示每条请求的国家。
ProxyPanda 的哪些代理能选国家? ISP 代理和数据中心代理。在库存带有相应信息时,两者都能选国家、地区和城市,ISP 还能选宽带运营商。
按城市定位的代理准吗? 对任何服务商来说都是近似的,因为它依赖地理定位数据库。落在邻近城市属于正常,国家不对才是问题。
看本地化价格一定要用住宅代理吗? 不一定。先用那个国家的数据中心 IP 试试。如果网店拒绝服务器地址,再试那里的 ISP IP。
从哪里开始
先用上面的对比脚本弄清你的任务是否需要指定位置。不需要的话,住宅代理或数据中心代理都行,看目标网站接受哪一种。需要的话,在目标国家租一个 ISP 或数据中心 IP,看看页面显示的是什么。价格在价格页面,如果拿不准哪条产品线合适,充值之前先到 Discord 描述一下你的任务。