X



くだすれPython(超初心者用) その38
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/05/17(木) 11:09:14.54ID:WeqM6vIc
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/
0237デフォルトの名無しさん
垢版 |
2018/06/19(火) 19:56:07.63ID:HoCrEKEA
PythonのIDLEの画面をクリアすることってできますか?
0239デフォルトの名無しさん
垢版 |
2018/06/19(火) 23:18:57.08ID:0nk/xPMo
Ruby では、--headless オプション

options = Selenium::WebDriver::Chrome::Options.new
options.add_argument('--headless')

driver = Selenium::WebDriver.for(:chrome, options: options)

driver.navigate.to "ここにURL"
0240デフォルトの名無しさん
垢版 |
2018/06/20(水) 00:14:42.51ID:roLNtd78
>>239
python2でもpython3でも動きませんでした。
他の方お願いします
0242デフォルトの名無しさん
垢版 |
2018/06/20(水) 08:12:14.73ID:pNRxkBp/
やりたいことに集中できるのがPythonの良さなのは同意するけど、便利な既製のデータ構造なんか他の言語にもだいたい用意されてるだろ
Pythonは文法がシンプルで記述の自由度が低く、変な例外的な仕様も少ないから、
どの書き方が美しいかなどというくだらないことをあまり考えなくていいんだよ
その結果、やりたいことに集中できる
0244デフォルトの名無しさん
垢版 |
2018/06/20(水) 12:35:53.89ID:XX+H87IB
1円硬貨: 8 枚
5円硬貨: 3 枚
10円硬貨: 2 枚
50円硬貨: 2 枚
100円硬貨: 3 枚

↑の硬貨のセットを持っているとする。

これらの硬貨を使って支払える金額のうち、その支払いに使える硬貨の組合せが
一通りしかないものの数を求めよ。


これを計算するためのプログラムを作ったのですが、正しい答えが出ません。
どこが間違っているのでしょうか?

http://codepad.org/Hyc8E6HM
0246デフォルトの名無しさん
垢版 |
2018/06/20(水) 15:34:20.79ID:OnxnZInx
>>243
Cの話してるところにC++の話題持ち込むと混乱するからやめて
0247デフォルトの名無しさん
垢版 |
2018/06/20(水) 16:04:05.44ID:pwTbHfBQ
プログラミング全くの初心者なのですが、beautiful soupというのを学ぶのに一番適している本やWebサイトってどれでしょうか?
0248デフォルトの名無しさん
垢版 |
2018/06/20(水) 16:29:37.34ID:OnxnZInx
ここで聞くのが早い
0250デフォルトの名無しさん
垢版 |
2018/06/20(水) 18:37:51.47ID:Ei8zBiKz
>>245
俺には関数部分のコードが正しいのかはわからんのだが、
paysに0が含まれてるからとかってオチじゃないの?
0255デフォルトの名無しさん
垢版 |
2018/06/20(水) 22:49:52.55ID:NQCW3xu6
jQuery, Ruby のNokogiri の、CSS セレクターを参照。
XPath よりも良い

なでしこの作者、クジラ飛行机の本は、難しいのか
0257デフォルトの名無しさん
垢版 |
2018/06/21(木) 00:34:34.36ID:9yZQgWTf
またrubyスレ荒らしてこなきゃ…
0259デフォルトの名無しさん
垢版 |
2018/06/21(木) 09:16:14.27ID:th0Ggf9H
いいえ、自作自演です
0266デフォルトの名無しさん
垢版 |
2018/06/21(木) 18:16:42.62ID:OqoFGLVJ
Anacondaからjupyter notebookを立ち上げてプログラムを起動するとno module named intertoolsというエラーが出ます
中身を確認したり何度かプログラムを動かしていると動作します
数分前まで動いていたプログラムでさえ立ち上げ直後は上記のエラー発生するのですが同様のケースを経験された方はいらっしゃいますか?
0267デフォルトの名無しさん
垢版 |
2018/06/22(金) 07:26:43.33ID:Msegs9yk
ヘルプかマニュアルに書いてある
0268デフォルトの名無しさん
垢版 |
2018/06/22(金) 09:31:36.57ID:MYEvMa8B
itertools
0269デフォルトの名無しさん
垢版 |
2018/06/22(金) 12:16:23.68ID:rBqx8nP+
指定した値が入っているリスト番地を返すindexって命令がありますけど
あれの正規表現版みたいなのはないですか?
0273デフォルトの名無しさん
垢版 |
2018/06/22(金) 14:58:02.62ID:lWEcvKD/
idx = next(i for i, v in enumerate(hogelist) if re.search(r"hage", v))
こういう事言ってるのかと思った
0274デフォルトの名無しさん
垢版 |
2018/06/22(金) 16:28:11.91ID:rBqx8nP+
>>272-273
目的を解決する標準関数はないけど
そのやり方を参考に自作関数を作ればいいわけですね
分かりました。ありがとうございます
0275遊園地
垢版 |
2018/06/22(金) 21:15:46.77ID:FpgraKib
2,3分で書くと、こんなもんかな。
import re
s = "012abc345def"
m = re.findall(r'[a-z]', s)
for i in m:print(i,re.search(i,s).span())
0276遊園地
垢版 |
2018/06/22(金) 22:20:43.17ID:FpgraKib
>>244は全部使うと1通りになります。的な?
0277遊園地
垢版 |
2018/06/22(金) 22:22:53.99ID:FpgraKib
合計金額とか
ない感じ、ですかね。
0279遊園地
垢版 |
2018/06/23(土) 09:53:25.33ID:rgQZb8eO
できてないんじゃない?

50+10+10+1+1=72
50+10+5+5+1+1=72
50+5+5+5+1+1+1+1+1+1+1=72

etc..
0281デフォルトの名無しさん
垢版 |
2018/06/23(土) 11:37:24.13ID:Ixf2W+q9
スクレイピングしたら
requests.exceptions.ConnectionErrorがでて
「既存の接続はリモート ホストに強制的に切断されました」って表示されたんだけど
これ相手から弾かれたってことですよね

time.sleep(10) に入れてたんだけど少ないですかね。
0282デフォルトの名無しさん
垢版 |
2018/06/23(土) 11:47:11.24ID:Kj6n8aPV
サイトによるだろ。株やFXならともかく、普通のサイトだと気が狂ってるとしか思えんフェッチする連中がいるし。
0283デフォルトの名無しさん
垢版 |
2018/06/23(土) 11:59:31.45ID:AshQdjwf
denyされていなくてもサーバーが高負荷になってれば普通に出る
denyされてるのか単なるエラーなのかは切断の傾向から推測するしかない

それなしに、ただ切断されましたと言われても分かんないね
0284281
垢版 |
2018/06/23(土) 12:44:32.88ID:Ixf2W+q9
>>281
>>282

ありがとう。
もしよければその単語の意味を確認させてほしい。

フェッチ=データを取り出すこと
deny= 拒否する 否定する など
0285デフォルトの名無しさん
垢版 |
2018/06/23(土) 13:17:45.77ID:AshQdjwf
接続を弾く場合、一般的にはファイヤーウォールやhttpdの機能を使う
それの設定の定番がallow-deny形式のルール

denyされた=ファイヤーウォールやhttpdで接続を拒否するように設定された
と考えて
0286281
垢版 |
2018/06/23(土) 14:13:39.32ID:X4Sjt2iY
>>285

ありがとう。止まったのは夜中だから機械的にアクセス拒否されたと考えてます。
timesleepの秒数をもっと長くして、あとrondomと組み合わせて、同じ時間感覚でアクセスするのやめるて様子みてみます。
0287遊園地
垢版 |
2018/06/23(土) 14:24:38.20ID:rgQZb8eO
初歩的な対処法なら

同じIPアドレスからのアクセスの間隔が常にほぼ同じ秒数間隔の変更
同じIPアドレスから、同じユーザーエージェントで大量にアクセス IP変更で対処

人間らしくないきっちりしすぎるアクセス *1

何度もアクセスしてきているのに、セッションクッキーを絶対に送ってこない
__CookieはWEBサーバーが発行し、ブラウザが保持するキーと値
__セッションはWEBサーバーで保持するキーと値

確認方法
C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Cookies
ブラウザのアドレス欄に____javascript:document.cookie;

リファラーがまったくない ココは調べてる必要がある

*1
__HTMLだけにアクセスしてJavaScriptやCSS、画像にまったくアクセスしていない
注意:画像だけにアクセスしても同様に対処される
0288デフォルトの名無しさん
垢版 |
2018/06/23(土) 14:26:59.81ID:8e5n022B
それこそ人工知能で人間っぽくみせるプログラムとかを作ってほしいですよね。
0289遊園地
垢版 |
2018/06/23(土) 14:29:45.70ID:rgQZb8eO
いくつかの書式形式から、HTML構造を頻繁に変えられると
もう、維持の張り合い

そんなサイトに出くわした事はない。けどなーw
0290遊園地
垢版 |
2018/06/23(土) 14:35:43.61ID:rgQZb8eO
>>288
python関係ないけど、

費用掛かって良いなら、
___RPAのトリガーを使う

試した事ないから、無理かもしれない。+時間が膨大にかかる
0291281
垢版 |
2018/06/23(土) 16:00:37.87ID:Ixf2W+q9
>>287
とても参考になります。

>同じIPアドレスからのアクセスの間隔が常にほぼ同じ秒数間隔の変更
やりました。今のところこれだけで大丈夫そうです。

>同じIPアドレスから、同じユーザーエージェントで大量にアクセス IP変更で対処
調べたらやり方がでてきたので、検討します。

>人間らしくないきっちりしすぎるアクセス *1
わかりました。覚えておきます。

>C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Cookies
Appdateというフォルダがなく、C:\Users\(ユーザー名)、までしか一致しなかったです。
Cドライブ指定で「Cookies」で検索しましたが、これに関係ありそうなファイルにはたどり着けませんでした。
こちらwin10(64)です。

>ブラウザのアドレス欄に____javascript:document.cookie;
やりました。なんか文字いっぱい出てきました。

>リファラーがまったくない ココは調べてる必要がある
検索結果のURLに直接アクセスしてるので、TOPの検索経由でスクレイピングする方法も試してみます。
0292遊園地
垢版 |
2018/06/23(土) 18:20:10.76ID:rgQZb8eO
>>291
おめでとう。

 こっちはURLまで取得できるけど、保存だと弾かれて苦戦中

試しにIPとブラウザ偽装でも、ダメだった。

諦めて、PyAutoGUIでキーボードでブラウザ操作に切り替え用か迷ってる。
0293デフォルトの名無しさん
垢版 |
2018/06/23(土) 21:41:08.02ID:m3qN670q
質問です。

こんなふうなスクリプトを書いています。
https://pastebin.com/0KKDbGnp

68〜75行目で変数に関数を代入していますが、77〜78行目をコメントアウトしてあるので何も動かないと思うんですが、実際には6行目の関数が動いてprint(〜)とinput()が求められてしまいます。
なぜ動くんでしょうか?
0294デフォルトの名無しさん
垢版 |
2018/06/23(土) 21:56:20.14ID:I6yycig3
>>293
68行目が実行されて、
get_service_id() が実行されているからでは。
むしろ、なんで77-78行目をコメントアウトすると、何も実行されないはずと考えたのかが理解不能。
0295デフォルトの名無しさん
垢版 |
2018/06/23(土) 21:58:47.18ID:1v1LX/MG
68行目でget_service_idを実行してるから。
関数の代入ではなく関数の評価結果の代入になってる。
だからget_service_id関数はそこで評価(実行)され、そこでinput求められてる。
0296デフォルトの名無しさん
垢版 |
2018/06/23(土) 22:26:43.34ID:m3qN670q
>>294
>>295
どうもありがとうございます。

変数には関数を代入したのでは無く、関数の処理結果を代入した場合は、77-78の有無にかかわらず68行目の時点で実行されてしまうんですね。

77や78を動かした時のみ上の関数が動くようにするにはどんな方法がありますか?
0300デフォルトの名無しさん
垢版 |
2018/06/23(土) 22:41:53.16ID:AshQdjwf
ifで77に必要なコードと78に必要なコードに分けろ
普通の頭ならそうする

>77や78を動かした時のみ上の関数が動くようにするにはどんな方法がありますか?
変数を一切使わなければいい
あのコードだと読み辛すぎて普通の頭ならやらない
0304デフォルトの名無しさん
垢版 |
2018/06/24(日) 15:48:36.36ID:RVJ6teNY
スクレイピングに挑戦してるんだど
503や404のHTTPerror別に処理を分ける方法ってありますか?

503の時は動作停止
404の時は動作続行
としたいんだけど…

検索してもさっぱり手掛かり掴めないので、
方法としてあるかどうかだけでも知りたいです。
0305304
垢版 |
2018/06/24(日) 15:52:00.43ID:RVJ6teNY
>>304補足です。
スクレイピング対象のURLは複数あって、
コード内のURL(途中まで)と、txtファイルから読み込んだパラメータを組み合わせて完成URLを生成してます。
0306デフォルトの名無しさん
垢版 |
2018/06/24(日) 16:45:34.35ID:2Vrp11he
プログラミングもやったことないんですが、いきなりpythonの入門書をやっていいのでしょうか?
0308デフォルトの名無しさん
垢版 |
2018/06/24(日) 17:11:02.94ID:uBBkkzH4
>>305
まずは自分の書いたコード貼れよと
このスレで以前マジ叱責されたわ
0309デフォルトの名無しさん
垢版 |
2018/06/24(日) 17:19:49.55ID:fW0KLT9g
スクレイピングとapiについての質問なのですが
セキュリティ関連のあるサイトから検索し、結果を取得したいのですが提供されているapiがリクエスト上限が分間数件とかです…
もう少し効率よく取得したいのですがスクレイピングならこういう制限なく自由に取っていって良いんでしょうか?
robots.txtは確認しましたがdelayの項目は無く制限された階層?からの取得はありません。
0310デフォルトの名無しさん
垢版 |
2018/06/24(日) 17:22:56.35ID:iZ9NT8wM
>>306
まずPythonをやる動機はあるのかい?
システムを外注する金がないからお前作れと上司から無茶振りされたとか、
学校の課題で出されたとか、具体的な動機がないとプログラミングは身につかない
ただやってみたいってだけで身に付くのは好奇心旺盛で頭が柔軟な子供のみ
0311 ◆QZaw55cn4c
垢版 |
2018/06/24(日) 17:33:34.72ID:rYGVoBbS
>>310
>ただやってみたいってだけで身に付くのは好奇心旺盛で頭が柔軟な子供のみ
子供は子供相応のやさしい課題をやるから「やってみたい」だけで身につく、という面があるのだろうね
プログラミングは複雑だし、単に覚えるだけではなく創る面もあるから、継続してモチベーションを維持しないといけない
モチベーションの維持ってどうすればいいのかな?
0312デフォルトの名無しさん
垢版 |
2018/06/24(日) 17:38:59.94ID:I6qT+7Vz
>>309
日本では悪しき前例があるから「どこまでならやっていいのか」に関しては部外者はなにも保証できない
そのサイトにルールが記載されてないなら運営に直接に尋ねるのが正解
尋ねた上でやるなと言われたら素直に諦めてAPIを使う
ビジネス上のメリットを提示して交渉できるなら希望はあるけど個人じゃ難しいよ
0313デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:02:51.87ID:KnGMQ2/n
>>312
ありがとう
英語のサイトで尋ねるのも大変ですし、この作業自体が隣の席の人がダルそうにチェックしてるから
どうにか出来ないかな レベルの話だからAPIで簡単に実装してみます
遅いダルいとか言い出したら昔の事件の存在とか少し伝えてそれでも欲しがったらスクレイピングしてみます改めてありがとう
0314304
垢版 |
2018/06/24(日) 18:09:49.65ID:RVJ6teNY
>>308
すみません。質問用に同様の動作をするコードを作りました。下記コードを元に何らかの助言が頂ければと思います。

urllistは質問用に設定したヤフーニュースの記事です。現状だと「res.raise_for_status()」が記述されているため、2つめの記事「〜pickup/9999999」の読み取り時に404エラーが出て処理が停止します。

エラーコードは 〜 requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://news.yahoo.co.jp/pickup/9999999 〜 です。

実現したいことは、404エラーの時は停止せず、次のURL読み込みに進んでほしいのです。ただし、503エラーの時は、停止させたいと思っています。

res.raise_for_status()を消せば処理は進みますが、503の時もアクセスし続けてしまうことが課題です。

----------
import requests, bs4
import csv

urllist1 = [
'https://news.yahoo.co.jp/pickup/6287442',
'https://news.yahoo.co.jp/pickup/9999999',
'https://news.yahoo.co.jp/pickup/6287380',
]

with open('news.csv', 'w', encoding='CP932', errors='ignore') as f:
for urllist in urllist1:
res = requests.get(urllist)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")
elems = soup.select('h2')
for elem in elems:
print(elem)
writer = csv.writer(f)
writer.writerows(elems)
----------
0316デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:44:52.85ID:L9YI7tib
>>315
文系なら英語できる?
codecademyとかやってみたら、
わからん単語調べながら
環境構築も要らんし
0317デフォルトの名無しさん
垢版 |
2018/06/24(日) 18:57:21.23ID:KnGMQ2/n
>>315
正直何に困ってるのか掴みかねますが
PCの入門本かpython入門本で迷うと言うことは基本的なPC知識が足りないと言うことでしょうか
自分で問題無く環境構築など進めるかと言った疑問でしょうか。

どちらにしても暇を持て余しているのであればネットで調べて実際にやってみると出来る出来ない分からないなどがはっきりし
質問しやすくなったり書籍購入するにしてもどういう本が良いか検討しやすくなると思われます。
0318デフォルトの名無しさん
垢版 |
2018/06/24(日) 19:18:26.36ID:nwkedvyK
>>ID:2Vrp11he
そもそもPCをあまり使ったことがあまりないなら、まずはPCを使い倒すこと
その中で「一件片付けるのは簡単だけど、何百件単位で片付けなきゃいけないからやってられない」って作業を見つけたら
それをプログラムで解決してみればいい

あと、プログラムを覚える前段階として正規表現を覚えるといいよ
Webから情報をコピー→テキストエディタやエクセルに貼り付け→正規表現で整形
という作業を日常的によくやるようになったら、プログラムスキルも伸びやすいと思う
0319デフォルトの名無しさん
垢版 |
2018/06/24(日) 19:25:45.93ID:VtKhATJw
>>314
for urllist in urllist1:
  res = requests.get(urllist)
  if res.status_code == 404:
    # 何がしかの処理(必要なら)
    continue      # forに戻って次の処理に進む
  res.raise_for_status()
0320デフォルトの名無しさん
垢版 |
2018/06/24(日) 19:34:46.58ID:QeMF1Yls
最初っからわかるヤツなんていない。

「どっから手を付けていいのかわからない」が当たり前。そこで苦しんで覚えるかってのが分岐点だな。
0321314
垢版 |
2018/06/24(日) 19:55:19.06ID:RVJ6teNY
>>319
ありがとうです!
ちょうどif文で調べてたところでした。
もっと勉強頑張ります!
0322デフォルトの名無しさん
垢版 |
2018/06/24(日) 19:57:20.22ID:2Vrp11he
環境構築とか正規表現とか用語が分からないけど、やっぱり暇を活かして自分で少しやってみます
0323314
垢版 |
2018/06/24(日) 20:25:01.44ID:RVJ6teNY
>>319
すみません、よく見たら出力された記事が一番下の「〜6287380」だけで、
一番上の「〜6287442」が取得できていませんでした。
解決方法もしわかりましたらご回答お願いします。
0324314
垢版 |
2018/06/24(日) 20:39:49.25ID:RVJ6teNY
自己解決しました。
res.raise_for_status() 以下のインデントを間違えていました!
自己解決!
0325デフォルトの名無しさん
垢版 |
2018/06/24(日) 23:18:20.51ID:chBT6m1a
まず学生は、cd, echo, cat とか、数十のLinux 基本コマンドから勉強する

謎のような呪文を覚えるって、皆言ってる
0331デフォルトの名無しさん
垢版 |
2018/06/25(月) 11:18:33.76ID:DuFsc7dI
みたいなのではなく目的を言え
そんな聞き方をされても、同じものはPythonには無いとしか答えられん
0333デフォルトの名無しさん
垢版 |
2018/06/25(月) 11:59:32.82ID:fSERGsnu
>>332
アドバイス通りクラスとか配列とかいい感じにすればできそうです
ありがとうございました
0334デフォルトの名無しさん
垢版 |
2018/06/25(月) 14:06:46.86ID:Mhnqwvq5
codeacademyって、Python3のコースってできたの?
それともまだ2だけ?
0335デフォルトの名無しさん
垢版 |
2018/06/25(月) 14:24:05.55ID:tpBtUwyy
>>330
ctypes
struct
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況