🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

3675閲覧

.aspのスクレイピング方法について

manpepen

総合スコア4

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/11/11 08:02

編集2019/11/11 08:17

前提・実現したいこと

https://www.traders.co.jp/domestic_stocks/invest_tool/futures/futures_op.asp
上記のサイトの表をスクレイピングしたいのですが.aspのスクレイピングの仕方が分からなく、問題の記述では
AttributeError: module 'requests' has no attribute 'get'
というエラーが出てしまい取り込むことができませんでした。
解決のアドバイスをご教示いただけますようお願いします。

Python 3.7.4

発生している問題・エラーメッセージ

C:\Users\aaa\Desktop\python_working>python copy.py Traceback (most recent call last): File "copy.py", line 2, in <module> import requests File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\__init__.py", line 95, in <module> from urllib3.contrib import pyopenssl File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\contrib\pyopen ssl.py", line 46, in <module> import OpenSSL.SSL File "C:\Users\aaa\Anaconda3\lib\site-packages\OpenSSL\__init__.py", line 8, in <module> from OpenSSL import crypto, SSL File "C:\Users\aaa\Anaconda3\lib\site-packages\OpenSSL\crypto.py", li ne 12, in <module> from cryptography import x509 File "C:\Users\aaa\Anaconda3\lib\site-packages\cryptography\x509\__in it__.py", line 8, in <module> from cryptography.x509.base import ( File "C:\Users\aaa\Anaconda3\lib\site-packages\cryptography\x509\base .py", line 16, in <module> from cryptography.x509.extensions import Extension, ExtensionType File "C:\Users\aaa\Anaconda3\lib\site-packages\cryptography\x509\exte nsions.py", line 14, in <module> from asn1crypto.keys import PublicKeyInfo File "C:\Users\aaa\Anaconda3\lib\site-packages\asn1crypto\keys.py", l ine 24, in <module> from .algos import _ForceNullParameters, DigestAlgorithm, EncryptionAlgorith m, RSAESOAEPParams, RSASSAPSSParams File "C:\Users\aaa\Anaconda3\lib\site-packages\asn1crypto\algos.py", line 26, in <module> from .core import ( File "C:\Users\aaa\Anaconda3\lib\site-packages\asn1crypto\core.py", l ine 54, in <module> import copy File "C:\Users\aaa\Desktop\python_working\copy.py", line 3, in <modul e> page_data = requests.get('https://www.traders.co.jp/domestic_stocks/invest_t ool/futures/futures_op.asp').text AttributeError: module 'requests' has no attribute 'get'

該当のソースコード

from bs4 import BeautifulSoup import requests page_data = requests.get('https://www.traders.co.jp/domestic_stocks/invest_tool/futures/futures_op.asp').text page = BeautifulSoup(page_data.content, 'asp.parser') for element in page.select("body > div"): print(element.text)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

html用のlxmlのようにaspに対応するものなどあれば教えてほしいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

copy.pyというファイル名が悪いです。

import copy

File "C:\Users\aaa\Desktop\python_working\copy.py", line 3, in <module>

import requestsで、標準ライブラリのcopy.pyimportしていますが、Pythonだとスクリプトのあるディレクトリもimportで検索してしまうので、標準ライブラリのcopy.pyじゃなくてこのスクリプト自身がimportされてしまっています。

標準ライブラリと同名のファイル名を付けてはいけないということで、いまいちな仕様ですね。

.aspのスクレイピングの仕方が分からなく、

URLの末尾の拡張子の違いでスクレイピングの仕方が異なると思っているあたり、ウェブの仕組みの理解ができていないと思いますので、そのあたりの学習もいるかと思います。

投稿2019/11/11 08:25

otn

総合スコア85893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

manpepen

2019/11/11 12:02

ご返信ありがとうございます。ファイル名をcopy_nukidashi.pyに変えた所、先程のエラーは出なくなりました。 代わりにrequests.exceptions.SSLError:というのが出てしまったのですが、 https://qiita.com/sta/items/6d08151fd9b20fa8b319に書かれていたverify=Falseを追加してみたのですが、同じエラーが出てしまいました。 勉強不足が否めないのですが、宜しければご教示ください。 訂正ソースコード from bs4 import BeautifulSoup import requests page_data = requests.get('https://www.traders.co.jp/domestic_stocks/invest_tool/futures/futures_op.asp',verify=False).text page = BeautifulSoup(page_data.content, 'asp.parser') for element in page.select("body > div"): print(element.text) エラーメッセージ PS C:\Users\aaa\Desktop\python_working> python copy_nukidashi.py Traceback (most recent call last): File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 654, in urlopen conn = self._get_conn(timeout=pool_timeout) File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 274, in _get_conn return conn or self._new_conn() File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 964, in _new_conn "Can't connect to HTTPS URL because the SSL " "module is not available." urllib3.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\adapters.py", line 449, in send timeout=timeout File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 720, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "C:\Users\aaa\Anaconda3\lib\site-packages\urllib3\util\retry.py", line 436, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='www.traders.co.jp', port=443): Max retries exceeded with url: /domestic_stocks/invest_tool/futures/futures_op.asp (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "copy_nukidashi.py", line 4, in <module> page_data = requests.get('https://www.traders.co.jp/domestic_stocks/invest_tool/futures/futures_op.asp',verify=False).text File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\api.py", line 75, in get return request('get', url, params=params, **kwargs) File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\api.py", line 60, in request return session.request(method=method, url=url, **kwargs) File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\sessions.py", line 533, in request resp = self.send(prep, **send_kwargs) File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\sessions.py", line 646, in send r = adapter.send(request, **kwargs) File "C:\Users\aaa\Anaconda3\lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='www.traders.co.jp', port=443): Max retries exceeded with url: /domestic_stocks/invest_tool/futures/futures_op.asp (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
manpepen

2019/11/11 12:08

ターミナル上では.aspだけなのですが、コメント投稿すると.asp&#039;となってしまいます。
otn

2019/11/11 12:24

> Can't connect to HTTPS URL because the SSL module is not available. と、SSLモジュールがないというエラーのようです。 requests.get('https://teratail.com') は、成功しますか? https://www.traders.co.jp のサイトをFirefoxで見ると、アドレスバーの鍵マークに警告アイコンが付き、「安全ではない接続。このページは税癪な暗号を使用しています」と表示されます。詳細を見るとTLS1.0のサイトのようです。 それが影響してアクセスできないのかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問