2

言語ごとに別の Web サイトを取得する必要があるカスタム スクレーパーを使用します (これはアーキテクチャの制限です)。site1.co.uk、site1.es、site1.de など。

しかし、site2.com/en、site2.com/de、site2.com/es などのように、URL で区切られた多くの言語で Web サイトを解析する必要があります。

MITMProxy について考えました: すべてのリクエストを次のようにリダイレクトできます:

en.site2.com/* --> site2.com/en
de.site2.com/* --> site2.com/de
...

URL を取得して書き換えるだけの小さなスクリプトを作成しました。

class MyMaster(flow.FlowMaster):

  def handle_request(self, r):
    url = r.get_url()

    # replace URLs
    if 'blabla' in url:
      r.set_url(url.replace('something', 'another'))

しかし、ターゲット ホストは、Web サーバーからの応答である 301 リダイレクトを生成します - 「ページはここに移動されました」と site2.com/en へのリンク

URL の書き換え、つまり site2.com/en --> site2.com/de で遊んだときに機能しました。しかし、異なるホスト (正確にはサブドメインとルート ドメイン) では機能しません。

上記の handle_request メソッドの Host ヘッダーを置き換えようとしました。

for key in r.headers.keys():
        if key.lower() == 'host':
            r.headers[key] = ['site2.com']

また、リファラーを置き換えようとしましたが、すべて役に立ちませんでした。

サブドメインからメイン ドメインへのリクエストを最終的にスプーフィングするにはどうすればよいですか? HTTP(s) クライアントの警告が生成された場合は、実際のブラウザではなく、スクレーパー (および警告をオフにすることができる) に必要なので問題ありません。

ありがとう!

4

1 に答える 1