リストをscrapyでスクレイピングし、構造化します

user9176398

そのページhttps://myanimelist.net/animelist/MoonlessMidnite?status=7からすべてのタイトルとスコアを取得し、その形式でデータを返そうとしています

{"user" : moonlessmidnite, "anime" : A, "score" : x 
"user" : moonlessmidnite, "anime" : B, "score" : x 
"user" : moonlessmidnite, "anime" : C, "score" : x }

...電気ショック療法

なんとかテーブルを手に入れました

table = response.xpath('.//tr[@class = "list-table-data"]')

score = table.xpath('.//td[@class =  "data score"]//a/text()').extract()
title = table.xpath('.//td//a[@class = "link sort"]').extract()

しかし、タイトルやスコアを取得しようとすると、次のような奇妙な出力が表示されます。

['\n            ', '\n          ', '${ item.anime_title }']
ギヨーム

ウェブサイトの生のHTMLを見てください:

生のHTML

確かにが含まれていることがわかります${ item.anime_title }

これは、コンテンツがJavascriptを介して生成されていることを示しています。そのための簡単な解決策はありません。実行されているXHRリクエストを調べて、何か意味のあるものが得られるかどうかを確認する必要があります。

HTMLをよく見ると、データがテーブルdata-item属性の大きなJSON文字列に含まれていることがわかります。

かすれたシェルでこれを試してください:

fetch('https://myanimelist.net/animelist/MoonlessMidnite?status=7')
import json
json.loads(response.xpath('//table[@class="list-table"]/@data-items').extract_first()

これは次のようなものを出力します:

{'status': 2,
  'score': 0,
  'tags': '',
  'is_rewatching': 0,
  'num_watched_episodes': 1,
  'anime_title': 'Hidan no Aria Special',
  'anime_num_episodes': 1,
  'anime_airing_status': 2,
  'anime_id': 10604,
  'anime_studios': None,
  'anime_licensors': None,
  'anime_season': None,
  'has_episode_video': False,
  'has_promotion_video': True,
  'has_video': True,
  'video_url': '/anime/10604/Hidan_no_Aria_Special/video',
  'anime_url': '/anime/10604/Hidan_no_Aria_Special',
  'anime_image_path': 'https://cdn.myanimelist.net/r/96x136/images/anime/2/29138.jpg?s=90cb8381c58c92d39862ac700c43f7b5',
  'is_added_to_list': False,
  'anime_media_type_string': 'Special',
  'anime_mpaa_rating_string': 'PG-13',
  'start_date_string': None,
  'finish_date_string': None,
  'anime_start_date_string': '12-21-11',
  'anime_end_date_string': '12-21-11',
  'days_string': None,
  'storage_string': '',
  'priority_string': 'Low'},
 {'status': 6,
  'score': 0,
  'tags': '',
  'is_rewatching': 0,
  'num_watched_episodes': 0,
  'anime_title': '.hack//Roots',
  'anime_num_episodes': 26,
  'anime_airing_status': 2,
  'anime_id': 873,
  'anime_studios': None,
  'anime_licensors': None,
  'anime_season': None,
  'has_episode_video': False,
  'has_promotion_video': True,
  'has_video': True,
  'video_url': '/anime/873/hack__Roots/video',
  'anime_url': '/anime/873/hack__Roots',
  'anime_image_path': 'https://cdn.myanimelist.net/r/96x136/images/anime/3/13050.jpg?s=db9ff70bf19742172f1d0140c95c4a65',
  'is_added_to_list': False,
  'anime_media_type_string': 'TV',
  'anime_mpaa_rating_string': 'PG-13',
  'start_date_string': None,
  'finish_date_string': None,
  'anime_start_date_string': '04-06-06',
  'anime_end_date_string': '09-28-06',
  'days_string': None,
  'storage_string': '',
  'priority_string': 'Low'}

次に、このdictを使用して、必要な情報を取得する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

CasperJS:スクレイピングされたデータを構造化されたExcelまたはCSVにエクスポートします

分類Dev

Scrapy:getリクエストからデータをスクレイピングします

分類Dev

Scrapyでajaxページをスクレイピングしますか?

分類Dev

ApifyとPuppeteerを使用して成功したWebスクレイピングの結果を構造化する方法は?

分類Dev

Python(lxml)でネストされた非構造化テーブルをスクレイピングする

分類Dev

vbaでのウェブスクレイピング-作業データを構造化し、左から右のセルに書き込みます

分類Dev

Scrapyを使用してWebサイトを再帰的にスクレイピングします

分類Dev

Scrapy:Webサイトからすべてのテキストをスクレイピングしますが、ハイパーリンクのテキストはスクレイピングしません

分類Dev

Xpath + Scrapy + Python:データポイントをスクレイピングできませんでした

分類Dev

Scrapy:ページ付けリンクをたどってデータをスクレイピングします

分類Dev

スクレイピング時にリクエストを取得しますか?

分類Dev

スクレイピングするドメインのリストを含む入力ファイルをscrapyに渡します

分類Dev

Rでmap()を使用して、Webスクレイピングの関数にリストを適用します

分類Dev

Scrapyのクロールページですが、アイテムをスクレイピングしません

分類Dev

Scrapy:現在のstart_urlを保存/スクレイピングしますか?

分類Dev

構造化ストリーミングを1回だけスパークします-達成されません-重複したイベント

分類Dev

Kafkaを使用したSpark構造化ストリーミングで、sparkが複数のトピックのオフセットを管理する方法

分類Dev

scrapyを使用して、AJAXを使用しているWebサイトから動的コンテンツをスクレイピングできますか?

分類Dev

2つの異なるSpark構造化ストリームで同じトピックを読み取ってKafkaパイプラインをデバッグします

分類Dev

Pythonでscrapyを介してWebサイトをスクレイピングしているときに、次のエラーが発生します。

分類Dev

GoでHTMLドロップダウンリストをスクレイピングしますか?

分類Dev

'__hpKey'のウェブサイトをスクレイピングし、Pythonでリクエストとbeautifulsoupを使用してログインします

分類Dev

カフカ構造化ストリーミングKafkaSourceProviderをインスタンス化することができませんでした

分類Dev

特定のテキストを含むスクリプトタグをスクレイピングします

分類Dev

beautifulsoupを使用してスクリプトタグからデータをスクレイピングします

分類Dev

構造化ストリーミングデータフレームをスパークさせるために新しいファイルを追加する方法

分類Dev

Scrapyを使用してスクレイピングされたデータからDataFrameを構築する

分類Dev

PySpark構造化ストリーミング:クエリの出力をAPIエンドポイントに渡します

分類Dev

Scrapy-1つのScrapyスクリプトでさまざまなWebページをスクレイピングする

Related 関連記事

  1. 1

    CasperJS:スクレイピングされたデータを構造化されたExcelまたはCSVにエクスポートします

  2. 2

    Scrapy:getリクエストからデータをスクレイピングします

  3. 3

    Scrapyでajaxページをスクレイピングしますか?

  4. 4

    ApifyとPuppeteerを使用して成功したWebスクレイピングの結果を構造化する方法は?

  5. 5

    Python(lxml)でネストされた非構造化テーブルをスクレイピングする

  6. 6

    vbaでのウェブスクレイピング-作業データを構造化し、左から右のセルに書き込みます

  7. 7

    Scrapyを使用してWebサイトを再帰的にスクレイピングします

  8. 8

    Scrapy:Webサイトからすべてのテキストをスクレイピングしますが、ハイパーリンクのテキストはスクレイピングしません

  9. 9

    Xpath + Scrapy + Python:データポイントをスクレイピングできませんでした

  10. 10

    Scrapy:ページ付けリンクをたどってデータをスクレイピングします

  11. 11

    スクレイピング時にリクエストを取得しますか?

  12. 12

    スクレイピングするドメインのリストを含む入力ファイルをscrapyに渡します

  13. 13

    Rでmap()を使用して、Webスクレイピングの関数にリストを適用します

  14. 14

    Scrapyのクロールページですが、アイテムをスクレイピングしません

  15. 15

    Scrapy:現在のstart_urlを保存/スクレイピングしますか?

  16. 16

    構造化ストリーミングを1回だけスパークします-達成されません-重複したイベント

  17. 17

    Kafkaを使用したSpark構造化ストリーミングで、sparkが複数のトピックのオフセットを管理する方法

  18. 18

    scrapyを使用して、AJAXを使用しているWebサイトから動的コンテンツをスクレイピングできますか?

  19. 19

    2つの異なるSpark構造化ストリームで同じトピックを読み取ってKafkaパイプラインをデバッグします

  20. 20

    Pythonでscrapyを介してWebサイトをスクレイピングしているときに、次のエラーが発生します。

  21. 21

    GoでHTMLドロップダウンリストをスクレイピングしますか?

  22. 22

    '__hpKey'のウェブサイトをスクレイピングし、Pythonでリクエストとbeautifulsoupを使用してログインします

  23. 23

    カフカ構造化ストリーミングKafkaSourceProviderをインスタンス化することができませんでした

  24. 24

    特定のテキストを含むスクリプトタグをスクレイピングします

  25. 25

    beautifulsoupを使用してスクリプトタグからデータをスクレイピングします

  26. 26

    構造化ストリーミングデータフレームをスパークさせるために新しいファイルを追加する方法

  27. 27

    Scrapyを使用してスクレイピングされたデータからDataFrameを構築する

  28. 28

    PySpark構造化ストリーミング:クエリの出力をAPIエンドポイントに渡します

  29. 29

    Scrapy-1つのScrapyスクリプトでさまざまなWebページをスクレイピングする

ホットタグ

アーカイブ