質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

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

Q&A

2回答

17426閲覧

"No schema supplied." エラーにより、URLがうまく拾えません。

MacKimura

総合スコア15

Python 3.x

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

0グッド

0クリップ

投稿2019/03/15 04:31

編集2019/03/15 04:49

”No schema supplied. Perhaps you meant http:///search?q=EV+charge?” というエラーが発生し解決できません。
どなたかご教示いただけますでしょうか。

他Webサイトを参考にする限りでは、URL指定の方法に問題があるらしいですが、アドバイスの程お願いします。

Python 3.6.5

from bs4 import BeautifulSoup import requests import pandas as pd from google.colab import files def get_search_results_df(keyword): columns = ['rank','title','url','affiliate_url'] df = pd.DataFrame(columns=columns) html_doc = requests.get('https://www.google.co.jp/search?num=30&q=' +keyword).text soup = BeautifulSoup(html_doc, 'html.parser') # BeautifulSoupの初期化 tags = soup.find_all('h3',{'class':'r'}) rank = 1 for tag in tags: title = tag.text print(title) url = query_string_remove(tag.select("a")[0].get("href").replace("/url?q=","")) affiliate_url = get_a8_links(url) # 作成したコードの追加 se = pd.Series([rank, title, url, affiliate_url], columns) df = df.append(se, ignore_index=True) rank += 1 return df def get_a8_links(url): html_doc = requests.get(url).text soup = BeautifulSoup(html_doc, 'html.parser') tags = soup.select("a") urls = "" for tag in tags: try: url = tag.get("href") if url.find(a8_link) > -1 : urls += url + "\n" except Exception as e: continue return urls def query_string_remove(url): return url[:url.find('&')] keyword = "EV charge" search_results_df = get_search_results_df(keyword) search_results_df.head(30) from google.colab import files filename = "filename.csv" search_results_df.to_csv(filename, encoding = "utf-8-sig") # encoding指定しないと、エラーが発生します。 files.download(filename)

エラーメッセージ

EVgo: Electric Vehicle (EV) Charging Stations | EV Fast Charging
Charge!!!
PlugShare - EV Charging Station Map - Find a place to charge your ...News for EV charge


MissingSchema Traceback (most recent call last)
<ipython-input-20-932ef3fb8f3f> in <module>()
44
45 keyword = "EV charge"
---> 46 search_results_df = get_search_results_df(keyword)
47 search_results_df.head(10)
48

<ipython-input-20-932ef3fb8f3f> in get_search_results_df(keyword)
17 print(title)
18 url = query_string_remove(tag.select("a")[0].get("href").replace("/url?q=",""))
---> 19 affiliate_url = get_a8_links(url) # 作成したコードの追加
20 se = pd.Series([rank, title, url, affiliate_url], columns)
21 df = df.append(se, ignore_index=True)

<ipython-input-20-932ef3fb8f3f> in get_a8_links(url)
25
26 def get_a8_links(url):
---> 27 html_doc = requests.get(url).text
28 soup = BeautifulSoup(html_doc, 'html.parser')
29 tags = soup.select("a")

/usr/local/lib/python3.6/dist-packages/requests/api.py in get(url, params, **kwargs)
70
71 kwargs.setdefault('allow_redirects', True)
---> 72 return request('get', url, params=params, **kwargs)
73
74

/usr/local/lib/python3.6/dist-packages/requests/api.py in request(method, url, **kwargs)
56 # cases, and look like a memory leak in others.
57 with sessions.Session() as session:
---> 58 return session.request(method=method, url=url, **kwargs)
59
60

/usr/local/lib/python3.6/dist-packages/requests/sessions.py in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
492 hooks=hooks,
493 )
--> 494 prep = self.prepare_request(req)
495
496 proxies = proxies or {}

/usr/local/lib/python3.6/dist-packages/requests/sessions.py in prepare_request(self, request)
435 auth=merge_setting(auth, self.auth),
436 cookies=merged_cookies,
--> 437 hooks=merge_hooks(request.hooks, self.hooks),
438 )
439 return p

/usr/local/lib/python3.6/dist-packages/requests/models.py in prepare(self, method, url, headers, files, data, params, auth, cookies, hooks, json)
303
304 self.prepare_method(method)
--> 305 self.prepare_url(url, params)
306 self.prepare_headers(headers)
307 self.prepare_cookies(cookies)

/usr/local/lib/python3.6/dist-packages/requests/models.py in prepare_url(self, url, params)
377 error = error.format(to_native_string(url, 'utf8'))
378
--> 379 raise MissingSchema(error)
380
381 if not host:

MissingSchema: Invalid URL '/search?q=EV+charge': No schema supplied. Perhaps you meant http:///search?q=EV+charge?

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

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

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

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

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

MacKimura

2019/03/15 07:17

ええと、、実は解決していないのです。 ベストアンサーを選んでクローズ(解決済)とすべきことは重々理解しております。
quickquip

2019/03/15 07:46

すみません。入力するページを間違えてしまったようです。失礼しました。
quickquip

2019/03/15 08:22

せっかくなので。 あなたはすぐに実行できる環境があって、すぐにもその行で実際に実行されているurl変数が確認できるのになぜしないんですか? という回答は普通だと思いました。 回答者がわざわざ実行するよりそちらの方がずっと解決への道に近いです。それをしないということは他の人(回答者)側で実行して調べてくれることを期待しているのでしょうか? と思ってしまいます。 回答者に期待することは「解決する方法」であって「何かを教えてくれること」や「代わりに調べてくれること」ではないはずです。
MacKimura

2019/03/20 07:21 編集

すみません、url変数は何?などとコメントいただいても漠然とした理解しかできないのです。 ましてや、どうしようもないとか言われても挑発行為ですよね。。 quiquiさんの理解とは裏腹に、私にとっては普通だと思えませんでした。 対応例の方が理解が早いことは実感として理解しており、できればその方向性でアドバイスをお願いしたいと考えています。
guest

回答2

0

同じエラーを検索して偶然引っかかり、他回答者の回答があまりに役に立たなかったので、
もう解決しているかと思いますが他閲覧者のために回答させて頂きます。

---> 27 html_doc = requests.get(url).text

恐らくですが、この個所のurlに以下のように誤りがあると思われます。

【正】https://www.google.co.jp/search?q=EV+charge
【誤】/search

実際に問題となっている処理は以下の個所と思われます。

url = query_string_remove(tag.select("a")[0].get("href").replace("/url?q=",""))

恐らく、aタグのhrefからURLを取得して引数にしているとみられますが、
href="/search" となっているために、スキーマとドメイン(https://www.google.co.jp)がなく、
requestsモジュールでのgetができずエラーになっているのでしょう。
ちなみに私の場合、環境変数からURLを設定していましたが、環境変数のセットが漏れており同じようなエラーになっていました。

> y_waiwai
もしかして、上記の処理内容が推測できなかったんですかね・・・?
中級程度のエンジニアなら一発で分かる内容だと思います。
ちょっとその程度の知識で偉そうに回答されても・・・質問者や他閲覧者に迷惑ですね。(笑)

投稿2021/01/02 02:22

dshin

総合スコア8

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

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

0

google翻訳
スキーマが指定されていません。

そのエラーが出た行の変数のナカミをチェックしてみよう

投稿2019/03/15 04:41

y_waiwai

総合スコア87719

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

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

MacKimura

2019/03/15 04:51

y_waiwaiさん 回答ありがとうございます。 申し訳ないのですが、初心者につき具体的なチェック方法をご教示いただけますと助かります。 尚、エラーメッセージ全文を追記しました。
y_waiwai

2019/03/15 05:01

わざわざエラーの行を出してくれてるんだから、そこの変数のナカミを見てみよう ---> 19 affiliate_url = get_a8_links(url) # 作成したコードの追加 ここのurlはどういう内容でしょう
MacKimura

2019/03/15 05:19

アドバイスいただいており恐縮ですが、 それら一通り調べたものの理解できかねる程度の初学者ですので、 試すようなコメントをいただいても困ってしまいます。 (そもそもエラーを読み下せていればここで質問していません)
y_waiwai

2019/03/15 05:24

ここのurl変数の内容はどういうものでしょうか。 #これさえ確認できないならどうしようもないですね、、
MacKimura

2019/03/15 05:32 編集

どうしようもないとはどういう意味ですか? 初学者が具体的にと、ワラをもつかむ思いでお願いしているのですが、、
yoorwm

2019/03/15 05:36

色々勘違いしているようだけど、他人に聞いた所で何も解決しないですよ。 自分の問題は、自分でしか解決できないのです。
MacKimura

2019/03/15 07:24 編集

??? 失礼ながら、ここで哲学や根性論を会話するつもりはありません。
MacKimura

2019/03/15 07:33

ちなみに、クローズしておりません。 失礼を承知で繰り返しますが、哲学や自分で考える「べき論」は要らないので、具体的な気づきを与えていただければ助かります。 課題解決に向け、もがき悩んでいる気持ちをお察しいただければありがたいです。 ちなみに、過去当方質問については、他回答者様の速やかな回答により、スムーズにクローズできております。(斯様に炎上気味に展開してしまったことに困惑しております。)
y_waiwai

2019/03/15 07:36

えーと、ここに限っては、べき論なんか言ってません。具体的な操作を答えてますが、あなたが実行しようとしないだけ、なんですが。 まあ、あなたは解答を求めてるんでしょうけど、わたしは、解答を答えるつもりはありませんです。あしからず。
MacKimura

2019/03/15 07:42

すみませんが、哲学はもう聞きたくありませんので回答を削除下さい。 こちらからブロックできればしているのですが。 ちなみに、あなたの4行の回答の中に日本語のロジックがねじれています。 あなたの回答が各所で炎上、低評価を頻発させているようですが、どうやら理由が分かりました。 ※ 他人の質問への回答に踏み込んで、ベストアンサーさせるまで悩ませる戦法。情けない。 コードの前に、基本的な接遇マナーと日本語ロジックを鍛えて下さいね!!
MacKimura

2019/03/15 07:52

運営さん、早くy_waiwaiさんのコメント削除をお願いします。
dshin

2021/01/02 01:45

> y_waiwai こちらのエラーを検索してこの記事にたどり着きましたが、酷い回答者ですね。役に立たないどころか見る人が不愉快になります。 質問に対する回答を投稿するサービスで、「回答するつもりはありません」は失笑というか呆れます。 こういうのが三流エンジニアなんでしょうね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問