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

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

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

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

983閲覧

スクレイピングにおいてのコードの動き

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/02 13:04

編集2021/10/02 13:25

知りたい事

いくつか聞きたい事があります
1.collections.insert_one(insert_dict)の部分の、.insert_one は合っていると思いますか?エラーは出てないんですけど・・・
2.repatter = re.compile('[^0-9]+') の部分の動きがわかりません。何をコンパイルしてるんでしょうか?文字列とかですか?
3.'offers': int(re.sub(repatter, "", offers))の部分の動きもわかりません。何をどう調べたら分かりますか?

該当コード

code

1import time 2import requests 3from bs4 import BeautifulSoup 4from pymongo import MongoClient 5import re 6 7client = MongoClient('localhost', 27017) 8db = client.scraping 9collections = db.gihyo 10 11def get_detail(URI): 12 r = requests.get(URI) 13 soup = BeautifulSoup(r.content, 14 'lxml', 15 from_encoding="utf-8") 16 offers = soup.find(itemprop="offers").get_text().split(" ( ")[0] 17 repatter = re.compile('[^0-9]+') 18 19 insert_dict = { 20 '_id': soup.find(itemprop="isbn").get_text(), 21 'title': soup.find(class_="mainTitleBook").get_text(), 22 'author': soup.find(itemprop="author").get_text().rstrip(" 著").rstrip(" 編").split(" , "), 23 'offers': int(re.sub(repatter, "", offers)) 24 } 25 26 collections.insert_one(insert_dict) 27 28if __name__ == "__main__": 29 BASE_URI = 'https://gihyo.jp' 30 31 start = time.time() 32 r = requests.get(BASE_URI + '/book/genre?s=0802') 33 34 while True: 35 soup = BeautifulSoup(r.content, 36 'lxml', 37 from_encoding="utf-8") 38 for b in soup.find_all(class_='data'): 39 get_detail(BASE_URI + b.find("a").get("href")) 40 41 next_url = soup.find(class_="next").a 42 if next_url is None: 43 continue 44 45 r = requests.get(BASE_URI + next_url.get("href")) 46 47 print('{:.5f}'.format(time.time() - start)) 48 49

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

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

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

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

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

Zuishin

2021/10/02 15:02 編集

> 別にプログラミングが出来るようになりたいわけじゃないです。 そうであるなら、あなたは仲間ではなく客です。 売り物を無料で寄越せと言っているに等しいことをしているという自覚はありますか? あるいは、初心者ではなく部外者です。 金銭の授受がないのであれば、客でもありませんね。 ラーメン屋に行って、「私は別にほしくないんだけど、友達がどうしてもと言うからこのラーメンのレシピを懇切丁寧に説明してください。できない? ラーメン業界は優しくないですね」と言ってみてください。 多分たたき出されて出入り禁止になると思います。 どうしてもレシピが知りたい場合、入門し、叱られながら然るべき時間をかけて修行を積む必要があるのではないでしょうか。 それとも、見ず知らずの人に懇切丁寧に商品の作り方を教えてくれる優しい業界がありますか?
退会済みユーザー

退会済みユーザー

2021/10/02 15:08

じゃあ私はどうすればいいんですか? 興味のない分野を一から何か月何年という年月をかけて自分のものにして何か月何年という年月という間中ずっとその友達に聞かれ続かれないといけないんですか?
Zuishin

2021/10/02 15:09

あなたは欲しいものが何でも手に入る立場なんですか? 王様か何かですか?
Zuishin

2021/10/02 15:10

欲しいものがお金で手に入る場合、普通はお金を払います。 ここでは無理なので、金銭の授受ができるサイトを使ってください。 ランサーズやメンタという場所があります。
退会済みユーザー

退会済みユーザー

2021/10/02 15:12

おkです
dodox86

2021/10/03 02:17

> 興味のない分野を一から何か月何年という年月をかけて自分のものにして何か月何年という年月という間中ずっとその友達に聞かれ続かれないといけないんですか? 早々に退会されたようなのでもはやコメントも意味無いですが、その友達とやらとの関係性がそもそもおかしい。本当に友達ですかという疑問。色んな方が居ますね。
guest

回答1

0

プログラミングは全く分かりません。

何をどう調べたら分かりますか?

まずは、Pythonの入門書などを買って、プログラミングに入門しましょう。

投稿2021/10/02 13:12

otn

総合スコア84572

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

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

退会済みユーザー

退会済みユーザー

2021/10/02 13:17

別にプログラミングが出来るようになりたいわけじゃないです。 友達に聞かれたんですが、私は「分からない」と言っているのにも関わらずしつこく何度も聞いてくるのでこういうサイトを活用しました。
otn

2021/10/02 13:19

人間関係の相談であれば、もっと適切な相談先があるかと思います。
退会済みユーザー

退会済みユーザー

2021/10/02 13:20 編集

では、懇切丁寧に教えて頂けるサイトとかツールとか人間を教えてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問