【问题标题】:How to scrape a website hosted on another country server?如何抓取托管在另一个国家服务器上的网站?
【发布时间】:2020-12-19 20:18:36
【问题描述】:

我正在使用 python (beautifulsoup4) 创建一个网络爬虫。我想获取“Hackerearth”网站的内容,但由于我已经在 heroku(美国服务器)上托管了我的网络爬虫,所以它影响的是美国版的 hackerearth,而不是基于我国家的版本。所以我想根据我的国家来获取网站版本。

url = "https://www.hackerearth.com/challenges/"
r = requests.get(url)

【问题讨论】:

    标签: python-3.x heroku web-scraping beautifulsoup proxy


    【解决方案1】:

    网站/网络服务器通过标题(例如Content-LanguageAccept-Language)检测您(或您的机器人)的语言/国家/地区 或通过客户的 IP 地址

    标题可以很容易地faked。要伪造客户的 IP 地址,您需要该国家/地区的代理。

    【讨论】:

    • 我目前在印度。我尝试使用代理,但没有奏效。其实我不知道具体怎么用。
    【解决方案2】:

    您应该按如下方式添加您编辑的 cookie。

    cookies ={'aep_usuc_f':'region=US&site=glo&b_locale=en_US&c_tp=USD'}
    url = "https://www.hackerearth.com/challenges/"
    s = requests.Session()
    r = s.get(url, cookies=cookies)
    

    让我知道结果。

    【讨论】:

    • 我想要印度版网站,所以我应该用 IN 替换 US 吗?
    • 尝试印度地区和站点代码。它可能会工作
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 2023-03-27
    相关资源
    最近更新 更多