セレンを使用してタオバオの商品情報を取得する
今回は Selenium を使用して Taobao 製品情報を取得する方法を紹介します。 Selenium を使用して Taobao 製品情報を取得するための 注意事項 は何ですか。実際の事例を見てみましょう。
淘宝網のページはデータをロードするために大量の js を使用するため、テスト ツールとして selenium を使用する方が簡単です。selenium は主にウィンドウレス ブラウザ phantomjs で使用されます。import re from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from pyquery import PyQuery as pq ''' wait.until()语句是selenum里面的显示等待,wait是一个WebDriverWait对象,它设置了等待时间,如果页面在等待时间内 没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常,也可以说程序每隔xx秒看一眼,如果条件 成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException 1.presence_of_element_located 元素加载出,传入定位元组,如(By.ID, 'p') 2.element_to_be_clickable 元素可点击 3.text_to_be_present_in_element 某个元素文本包含某文字 ''' # 定义一个无界面的浏览器 browser = webdriver.PhantomJS( service_args=[ '--load-images=false', '--disk-cache=true']) # 10s无响应就down掉 wait = WebDriverWait(browser, 10) #虽然无界面但是必须要定义窗口 browser.set_window_size(1400, 900) def search(): ''' 此函数的作用为完成首页点击搜索的功能,替换标签可用于其他网页使用 :return: ''' print('正在搜索') try: #访问页面 browser.get('https://www.taobao.com') # 选择到淘宝首页的输入框 input = wait.until( EC.presence_of_element_located((By.CSS_SELECTOR, '#q')) ) #搜索的那个按钮 submit = wait.until(EC.element_to_be_clickable( (By.CSS_SELECTOR, '#J_TSearchForm > p.search-button > button'))) #send_key作为写到input的内容 input.send_keys('面条') #执行点击搜索的操作 submit.click() #查看到当前的页码一共是多少页 total = wait.until(EC.presence_of_element_located( (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > p.total'))) #获取所有的商品 get_products() #返回总页数 return total.text except TimeoutException: return search() def next_page(page_number): ''' 翻页函数, :param page_number: :return: ''' print('正在翻页', page_number) try: #这个是我们跳转页的输入框 input = wait.until(EC.presence_of_element_located( (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > p.form > input'))) #跳转时的确定按钮 submit = wait.until( EC.element_to_be_clickable( (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > p.form > span.J_Submit'))) #清除里面的数字 input.clear() #重新输入数字 input.send_keys(page_number) #选择并点击 submit.click() #判断当前页是不是我们要现实的页 wait.until( EC.text_to_be_present_in_element( (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > ul > li.item.active > span'), str(page_number))) #调用函数获取商品信息 get_products() #捕捉超时,重新进入翻页的函数 except TimeoutException: next_page(page_number) def get_products(): ''' 搜到页面信息在此函数在爬取我们需要的信息 :return: ''' #每一个商品标签,这里是加载出来以后才会拿网页源代码 wait.until(EC.presence_of_element_located( (By.CSS_SELECTOR, '#mainsrp-itemlist .items .item'))) #这里拿到的是整个网页源代码 html = browser.page_source #pq解析网页源代码 doc = pq(html) items = doc('#mainsrp-itemlist .items .item').items() for item in items: # print(item) product = { 'image': item.find('.pic .img').attr('src'), 'price': item.find('.price').text(), 'deal': item.find('.deal-cnt').text()[:-3], 'title': item.find('.title').text(), 'shop': item.find('.shop').text(), 'location': item.find('.location').text() } print(product) def main(): try: #第一步搜索 total = search() #int类型刚才找到的总页数标签,作为跳出循环的条件 total = int(re.compile('(\d+)').search(total).group(1)) #只要后面还有就继续爬,继续翻页 for i in range(2, total + 1): next_page(i) except Exception: print('出错啦') finally: #关闭浏览器 browser.close() if name == 'main': main()
ToutiaoモバイルホームページインターフェースのJS模倣
以上がセレンを使用してタオバオの商品情報を取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Microsoft Word ドキュメントには、保存時にいくつかのメタデータが含まれます。これらの詳細は、作成日、作成者、変更日など、ドキュメントの識別に使用されます。文字数、単語数、段落数などの他の情報もあります。他の人に値が知られないよう、作成者や最終更新情報、その他の情報を削除したい場合は、方法があります。この記事では、ドキュメントの作成者と最終変更情報を削除する方法を見てみましょう。 Microsoft Word 文書から作成者と最終変更情報を削除する ステップ 1 – 次のページに移動します。

PyCharm インストール チュートリアル: Selenium のインストール方法を簡単に学習します。特定のコード サンプルが必要です。Python 開発者として、プロジェクト開発を完了するためにさまざまなサードパーティ ライブラリやツールを使用する必要があることがよくあります。その中でも、Selenium は、Web アプリケーションの自動テストや UI テストに非常によく使用されるライブラリです。 PyCharm は、Python 開発用の統合開発環境 (IDE) として、Python コードを開発するための便利で迅速な方法を提供します。

Laravel 開発: ブラウザーのテストに LaravelDusk と Selenium を使用する方法は? Web アプリケーションがより複雑になるにつれて、そのすべての部分が適切に機能することを確認する必要があります。ブラウザ テストは、さまざまなブラウザ下でアプリケーションの正確性と安定性を確認するために使用される一般的なテスト方法です。 Laravel 開発では、ブラウザのテストに LaravelDusk と Selenium を使用できます。この記事では、これら 2 つのツールを使用してテストする方法を紹介します。

システム情報の使用 [スタート] をクリックし、システム情報を入力します。下の画像に示すようにプログラムをクリックするだけです。ここではほとんどのシステム情報が見つかりますが、グラフィック カード情報も見つかります。システム情報プログラムで、「コンポーネント」を展開し、「表示」をクリックします。プログラムに必要な情報をすべて収集させ、準備が完了すると、システム上でグラフィックス カード固有の名前やその他の情報を見つけることができます。複数のグラフィックス カードをお持ちの場合でも、コンピュータに接続されている専用および統合グラフィックス カードに関連するほとんどのコンテンツをここから見つけることができます。デバイス マネージャーの使用 Windows 11 他のほとんどのバージョンの Windows と同様に、デバイス マネージャーからコンピューター上のグラフィック カードを見つけることもできます。 「開始」をクリックしてから、

iOS 17には、2台のiPhoneをタッチすることで誰かと連絡先情報を交換できる新しいAirDrop機能があります。これは NameDrop と呼ばれるもので、その仕組みは次のとおりです。 NameDrop を使用すると、新しい相手の電話番号を入力して電話したりテキストメッセージを送信したりする代わりに、iPhone を相手の iPhone の近くに置くだけで連絡先の詳細を交換できるため、相手はあなたの番号を知ることができます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスターが表示されます(自分の写真をカスタマイズして編集できます。これも iOS17 の新機能です)。この画面には、「受信のみ」するか、応答として自分の連絡先情報を共有するかのオプションも含まれています。

現在の画像 3D 再構成作業では、通常、一定の自然光条件下で複数の視点 (マルチビュー) からターゲット シーンをキャプチャする多視点ステレオ再構成手法 (マルチビュー ステレオ) が使用されます。ただし、これらの方法は通常、ランバート曲面を前提としており、高周波の詳細を復元するのが困難です。シーン再構築のもう 1 つのアプローチは、固定視点から異なる点光源でキャプチャされた画像を利用することです。たとえば、フォトメトリック ステレオ法では、この設定を採用し、そのシェーディング情報を使用して、非ランバーシアン オブジェクトの表面の詳細を再構成します。ただし、既存のシングルビュー手法は通常、可視領域を表現するために法線マップまたは深度マップを使用します。

iOS17では、2台のiPhoneを同時にタッチすることで連絡先を交換できるAirDrop機能が新たに搭載されました。これは NameDrop と呼ばれるもので、実際にどのように機能するかは次のとおりです。 NameDrop を使用すると、新しい相手に電話をかけたりテキストメッセージを送信したりする際に相手の番号を入力する必要がなく、相手があなたの番号を知ることができるので、iPhone を相手の iPhone に近づけるだけで連絡先情報を交換できます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスター (カスタマイズおよび編集できる自分の写真、これも iOS 17 の新機能) が表示されます。この画面には、「受信のみ」または応答として自分の連絡先情報を共有することも含まれます

Web オートメーション テストに Selenium を使用する方法の概要: Web オートメーション テストは、最新のソフトウェア開発プロセスの重要な部分です。 Selenium は、Web ブラウザーでのユーザー操作をシミュレートし、自動テスト プロセスを実装できる強力な自動テスト ツールです。この記事では、Web 自動化テストに Selenium を使用する方法を紹介し、読者がすぐに開始できるようにコード例も示します。環境の準備 開始する前に、Selenium ライブラリと Web ブラウザ ドライバーをインストールする必要があります
