序文
この記事のテキストと写真はインターネットからのものであり、学習とコミュニケーションのみを目的としています。商用目的ではありません。ご不明な点がございましたら、お問い合わせください。
PS:Pythonの学習教材が必要な場合は、以下のリンクをクリックして自分で入手できます
完全なコードは、以下のリンクをクリックして入手できます〜
Pythonの無料学習資料とグループコミュニケーションの回答クリックして参加
セレン
Seleniumは、Webの自動テストツールであり、元々はWebサイトの自動テスト用に開発されたもので、ゲームをプレイするためのボタンウィザードのようなもので、指定したコマンドで自動的に操作できます。
Seleniumテストツールは、実際のユーザーが操作しているように、ブラウザーを直接制御します。Seleniumを使用すると、ブラウザは指示に従ってページを自動的にロードしたり、必要なデータを取得したり、ページのスクリーンショットを撮ったり、Webサイトで特定のアクションが発生したかどうかを判断したりできます。
モジュールのインストール
pipインストールセレン 1
Googleドライブのダウンロードリンク:
https://npm.taobao.org/mirrors/chromedriver/ 1
http://chromedriver.storage.googleapis.com/index.html 1
ブラウザドライバを設定します。
ダウンロードしたブラウザドライバを解凍し、解凍したexeファイルをpython.exeと同じディレクトリであるPythonインストールディレクトリに配置します。
または
ドライバーとコードを同じパスに入れてください〜
ランディングページを決定する
セレニウムは人間の行動をシミュレートして操作することです〜プロセスに従ってください〜
クロールコンテンツ:
- 商品の価格
- 商品名
- 売上高
- ショップ名
- 納入場所
1.検索ボックスの要素を取得し、検索するコンテンツを入力します。ここでは、レディースバッグのキーワードを検索します。
driver.find_element_by_css_selector( '#q')。send_keys( 'women's bag') 1
2.検索ボタン要素を取得し、[検索]をクリックします
driver.find_element_by_css_selector( '。search-button')。click() 1
3.ランディングページがポップアップします
- 解決策1:
-アカウントとパスワードの要素を取得し、コードを入力します〜遅延を適切に設定すると、確認コードが表示されません〜 - オプション2:
-Alipayログイン要素を取得し、クリックしてコードを手動でスキャンしてログインします。
ここで、オプション2を選択します。オプション1は実行可能ですが、アカウントパスワードが必要になるため、自分で試すことができます。
driver.find_element_by_css_selector( '#login-form> div.login-blocks.sns-login-links> a.alipay-login')。click() 1
4.製品リストページでデータを取得します
通常のクローラーがウェブサイトのデータを解析するのと同じです〜リストページのラベルを取得して、もう一度抽出します。
ここで辞書を作成し、データを受信して、便宜上csvファイルに保存します。
lis = driver.find_elements_by_css_selector( '#mainsrp-itemlist .item') dit =() for li in lis: time.sleep(1) price = li.find_element_by_css_selector( '。ctx-box.price strong')。text + '元 '#商品価格 dit ['商品価格 '] =価格 取引= li.find_element_by_css_selector('。ctx-box .deal-cnt ')。text#volume dit [' volume '] =取引 行= li.find_element_by_css_selector ( '.ctx-box .row-2 a')。text#製品名 dit ['product name'] = row shop = li.find_element_by_css_selector( '。shop> a> span:nth-child(2)')。 text#shop name dit ['shop name'] = shop city = li.find_element_by_css_selector( '。row-3> div.location')。text#配送先住所 dit ['配送先住所'] =都市
5.データを保存します
最後のステップは、基本的な操作であるデータを保存することです
f = open( 'Taobao data.csv'、mode = 'a'、encoding = 'utf-8-sig'、 newline = '')csv_writer = csv.DictWriter(f、fieldnames = ['commodity price'、 'transaction数量 '、'製品名 '、'ショップ名 '、'出荷先住所 ']) csv_writer.writeheader() csv_writer.writerow(dit)
6.ページをめくって、次のページをクリックします
def next_page(): driver.find_element_by_css_selector( '#mainsrp-pager> div> div> div> ul> li.item.next> a')。click() driver.implicitly_wait(10)
7.ランニングエフェクトチャート