「スクレイピング・ハッキング・ラボ Pythonで自動化する未来型生活 (技術の泉シリーズ(NextPublishing)) Kindle版」という書籍を見ながら、スクレイピングの練習をしています。
ここで、あるサイトをスクレイピングしようとしたところ、途中で壁に当たってしまいました。
具体的には、ある企業情報サイトから会社名を抜き出したいのですが、書籍を参考にコードを書いてもエラーになってしまいます。
書籍が練習用に使っているサイトは「はてなブックマーク」なので、自分なりに解釈してコードを作成しているのですが、うまくいきません。
もう5日もここで止まっているので、自分で解決することはあきらめました。
何が間違っているか、教えていただけないでしょうか?
以下、入力したコードです。Jupyter notebookを使用しています。
import requests
from bs4 import BeautifulSoup
url="https://www.jp.usedmachinery.bz/members/list/%E3%81%82/1"
response=requests.get(url)
soup=BeautifulSoup(response.content,"html.parser")
top_entry=soup.find("table", attrs={"class":"block-contents-a-u__list-c mod-table-a-a helper--margin-top5"})
print(top_entry)
<table class="block-contents-a-u__list-c mod-table-a-a helper--margin-top5"><tr><th class="block-contents-a-u__list-c__name mod-table-a-a__cell-head-b" scope="col"><span class="mod-text mod-text--align-center mod-text--weight-bold">会社名</span></th><th class="block-contents-a-u__list-c__stock-list mod-table-a-a__cell-head-b" scope="col"><span class="mod-text mod-text--align-center mod-text--weight-bold">在庫リスト</span></th><th class="block-contents-a-u__list-c__description mod-table-a-a__cell-head-b" scope="col"><span class="mod-text mod-text--align-center mod-text--weight-bold">会社紹介</span></th><th class="block-contents-a-u__list-c__place mod-table-a-a__cell-head-b" scope="col"><span class="mod-text mod-text--align-center mod-text--weight-bold">所在地</span></th></tr><tr><td class="block-contents-a-u__list-c__name mod-table-a-a__cell-body-b mod-table-a-a__cell-body--color-a"><p class="mod-text mod-text--size-12 mod-text--weight-bold"><a class="mod-text__link" href="/members/general_view/744">IE Development</a></p></td><td class="block-contents-a-u__list-c__stock-list mod-table-a-a__cell-body-b mod-table-a-a__cell-body--color-a"><a class="mod-btn mod-btn--theme-a-a--a" href="/members/general_list_id/744"><i class="mod-btn__icon mod-btn__icon--inline-left mod-icon mod-icon--type-a-h--a"></i><span class="mod-btn__label mod-btn__label--inline-true">リスト</span></a></td><td class="block-contents-a-u__list-c__description mod-table-a-a__cell-body-b mod-table-a-a__cell-body--color-a"><p class="mod-text mod-text--size-12">プレス機械、板金機械、工作機械等の点検、修理、販売及び買取を行っております。</p></td><td class="block-contents-a-u__list-c__place mod-table-a-a__cell-body-b mod-table-a-a__cell-body--color-a"><p class="mod-text mod-text--size-12 mod-text--align-center">栃木県</p></td></tr><tr><td class="block-contents-a-u__list-c__name mod-table-a-a__cell-body-b mod-table-a-a__cell-body--color-b"><p class="mod-text mod-text--size-12 mod-text--weight-bold"><a class="mod-text__link" href="/members/general_view/537">IMMサービス</a>...【以下省略】entries=top_entry.find_all("a", attrs={"class":"mod-text__link"})
print(entries)
[<a class="mod-text__link" href="/members/general_view/744">IE Development</a>, <a class="mod-text__link" href="/members/general_view/537">IMMサービス</a>, <a class="mod-text__link" href="/members/general_view/130">(株)アイクス</a>, <a class="mod-text__link" href="/members/general_view/722">有限会社 鮎澤プレスサービス</a>, <a class="mod-text__link" href="/members/general_view/127">アイダエンジニアリング株式会社</a>, <a class="mod-text__link" href="/members/general_view/132">(有)アイテクノス</a>, ...【以下省略】
ここまでは抜き出しできたのですが、次にfor inで会社名を
IE Development
IMMサービス
(株)アイクス
有限会社 鮎澤プレスサービス
アイダエンジニアリング株式会社
(有)アイテクノス
...【以下省略】
と抜き出したいのですが、うまくいきません。
書籍では、
for entry in entries:
print()
を使って抜き出せるように説明されています。
for inを使う場合、どのようなコードを書けばよいでしょうか?
ご教示いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/28 22:51