Pythonで楽天ブックスの特売情報をスクレイピングしようとしています。
その情報はSlackに通知して、特定のメンバーと共有したいです。
エラーが発生しており、原因がわかりません。
※この特売情報は表示されている時間が限定されており、通常時は表示されていません。
最終的な動作テストはその限定された時間で確認する必要がありそうです。
発生している問題・エラーメッセージ
Traceback (most recent call last):
File "test.py", line 27, in <module>
scraping()
File "test.py", line 22, in scraping
headlines = mainNewsIndex.find_all("span", attrs={"style", "color: #ffffff;"})
AttributeError: 'NoneType' object has no attribute 'find_all'
該当のソースコード
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
import slackweb
from urllib import request
from bs4 import BeautifulSoup
def scraping():
url = "https://books.rakuten.co.jp/" html = request.urlopen(url) soup = BeautifulSoup(html, "html.parser") mainNewsIndex = soup.find("div", attrs={"style", "margin: 10px 0;padding: 8px; background: #ff9900;font-size: 15px; font-weight: bold; text-align: center; z-index: 0;color: #330000;" }) headlines = mainNewsIndex.find_all("span", attrs={"style", "color: #ffffff;"}) print(headlines)
scraping()
slack = slackweb.Slack(url="https://hooks.slack.com/services/XXXXXX")
slack.notify(text=headlines)
試したこと
Slackへテスト通知はできました。
SSLの部分は通知のために必要でした。(エラー回避)
実際に楽天ブックスからスクレイピングする部分で失敗しているように見受けられます。
補足情報(FW/ツールのバージョンなど)
beautifulsoup4 4.6.3
slackweb 1.0.5
urllib3 1.23
まだその特売時間が来ていないため、完全なテストはできていません。
プログラムは学生時代に授業で触った程度の初心者です。申し訳ありません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/26 13:08