”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?
