来自不同国家的IP请求

2024-06-30 07:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Playstation商店上查看来自不同国家的电影内容。但是,playstation store根据请求的位置阻止IP,因此无法从美国观看加拿大的电影:

https://store.playstation.com/#!/en-ca/movies/the-house/cid=UV0130-NPVA92773_CN-0000000000236063

有没有办法做到以下几点:

url = 'https://store.playstation.com/#!/en-ca/movies/the-house/cid=UV0130-NPVA92773_CN-0000000000236063'
r = requests.get(url, proxy_from = COUNTRY['CA']) # In pseudocode

基本上,这样您就可以指定一个国家,然后从一个被认为来自该国家的IP发送请求。怎么做呢?在


Tags: thestorehttpsipcom电影国家movies
2条回答

你能做的就是诊断并试着弄清楚这是否可能。在

您可以做的第一件事是使用VPN或任何Proxy来模拟您来自加拿大的位置。如果这是可行的,并且您能够加载所需的页面,那么位置很可能是由请求IP决定的。在

实际上,从服务的角度来看,在您的Playstation store中,没有其他可靠的信息可用于检索客户端的地理位置。在

因此,如果是这种情况,唯一合理的解决方案就是改变你的IP地址。但是不管怎样,如果你在你的应用程序端这样做,会有太多的层,例如路由器,无论如何都会暴露你的真实位置,因为到达服务的最后IP packet将包含真正的real IP。在

因此,这与您的应用程序或请求客户机无关,您应该考虑在它前面放什么。在

如果你的问题是:

How to achieve my goal on the application side?

…那么答案是:很可能不可能。

但如果你问:

How can I achieve my goal?

…然后还有其他选择:

  • 使用proxy或{}。您肯定会找到一个VPN服务,它将为每个位置提供访问凭据(例如OpenVPN config),因此您可以通过编程方式加载它们。可以在应用程序端实现。在
  • 而鲁莽的人……在你想要请求的每个地方都有机器:)

如果我理解正确的话,你基本上是在问如何使用代理在python中发出url请求?在

如果是,可以按如下方式进行:

import urllib2
import urllib
import random

CAproxies = [{"http":"199.201.122.175:3128", "https":"199.201.122.175:3128"},{"http":"192.99.3.129:3128", "https":"192.99.3.129:3128"},{"http":"192.99.246.101:8118", "https":"192.99.246.101:8118"},{"http":"205.205.129.130:443", "https":"205.205.129.130:443"} ]


proxies = urllib2.ProxyHandler(random.choice(CAproxies))

url = 'https://store.playstation.com/#!/en-ca/movies/the-house/cid=UV0130-NPVA92773_CN-0000000000236063'

request = urllib2.Request(url)
request.add_header("User-Agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:25.0) Gecko/20100101 Firefox/25.0")
request.add_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")

opener = urllib2.build_opener(proxies)
urllib2.install_opener(opener)
r = urllib2.urlopen(request, timeout=15)
html = r.read()

如果你想让服务认为你在使用浏览器,那么标题是很好的,它们通常对机器人有防御能力。你需要用你自己的代理来替换代理地址,这只是一个为了说明目的而发明的代理。在

代理列表可在此处找到,例如: http://www.proxy-listen.de/Proxy/Proxyliste.html 以防上面给出的代理不起作用。 如果其中一个代理更适合您的特定位置(假设第二个代理最适合您,那么最好将随机选择的代理更改为只选择第二个代理。i、 e

^{pr2}$

卡普生对我最有效。 html的前250个字符:

>>> html[0:250]
'<!DOCTYPE html>\n\n<html class="ctry mobvportA rgba">\n  <head>\n    <meta http-equiv="x-ua-compatible" content="IE=edge" />\n    <meta charset="utf-8"/>\n\n    <link rel="dns-prefetch" href="//ajax.googleapis.com">\n    <link rel="dns-prefetch" href="//ssl.'

相关问题 更多 >