Palai

Palai

程序员 | 开源爱好者 | 喜欢交友

インターンシップはレンガのようなものであり、どこが必要かに応じて移動します。

背景:責任のあるプロジェクトは最近活動がなく、数日間の休暇の後、MT が小さな要件を私に依頼しました。
その後、プロダクトマネージャーが私に連絡して、メールの内容を弊社のプラットフォームにアップロードする爬虫の要件を実装するように頼まれました。

はい、それが小さな要件ですが、少し心配です。技術的な問題ではなく、...(続きは以下をご覧ください)

私:このメールに制限はありますか?ウェブ版を使用できますか?
A:特に制限はありません、可能です。
私:プラットフォームへのアップロードのためのインターフェースは既にありますか?
A:**(プロジェクトの爬虫モジュールを担当している人)に聞いてください。

その後、私は理解したので、すぐに作業を始めました。

テスト用のメールボックスは私自身の 163 メールボックスです。私は Java と Python の両方についてあまり熟達していないためです。
調査の後、最初にSelenium を使用して自動化をシミュレートすることを考えました。私は固定されたボタンを使用して制御するだけです。
最初のステップ:ログイン
Selenium を使用してログインをシミュレートすると、BAN されます。速すぎるため、NetEase のスクレイピング防止メカニズムに検出されます。
解決策:sleep(time)関数を使用するだけです。
2 番目のステップ:共通点の発見
バッチ処理を実装する必要があるため、コードの汎用性がより適切である必要があります。
実装手順:ログイン - 未読メールのロゴをクリック(既読の場合は再度スクレイピングする必要はありません)- 最初のメール - コンテンツの解析 - 戻る - 2 番目のメール - コンテンツの解析 - 戻る ----。。。。。。。
この手順では、コンテンツを解析した後、戻るボタンを実装したいと思いますが、理由がわからない問題が発生しました。多くの方法を試しましたが、成功しませんでした。(非常に奇妙です)ただし、もう金曜日です... ヘヘ

その後、週末を経て、解析したコンテンツにも問題が発生し、スクレイピングしたコンテンツが空になりました。
問題が発生した場所を確認するために直接 F12 を使用しましたが、後でフロントエンドのフレームワークが変更されたことがわかりました(ほっとしました)。再解析するだけです。
上記で述べた問題はまだ解決されておらず、非常に困っています。そこで、2 番目の方法を使用し始めました:ページ全体のコンテンツを直接取得し、ループを使用してバッチ処理を制御します。最後にコンテンツ全体を解析します。
これで、この小さな要件を完了しました。

私:こんにちは、この効果は要件に合っていますか?
A:いいえ、私は全体のコンテンツではなく、特定のリンクだけが必要です(具体的な手順を共有するために共有しました)
私:ああ、わかりました(実際には、彼のメールボックスから特定のメールのレポートをスクレイピングし、特別なリンクをスクレイピングするだけです)(驚きました、最初からデモをしてくれないのですか!)これはアップロードとは関係ありません。
私:スクレイパーに提供する形式は何ですか?テキストですか?
A:スクレイパーの人に聞いてください、彼が知っています。
私:わかりました(^^_)

最後に、スクレイピングしたリンクをリンク:タイムスタンプの形式でローカルの Excel に保存します。

収穫:要件を明確に理解する必要があります。必要な場合は直接デモを行うことができます。なぜなら、プロダクトマネージャーの言葉が自分の頭の中のものと一致するかどうかわからないからです ^^_#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。