ウェブスクレイピングのプログラムやるぞ
■ このスレッドは過去ログ倉庫に格納されています
Twitterの自動フォローとか5chへの自動書き込みとか考える Twitterの場合、Twitter APIを使ったら自動化してるのバレバレだから
スクレイピングした方が規制されにくいんじゃ…?と思ったけどどうなの 基本的にはPythonだね
TSでもRustでもいいけどリクエストはともかくスクレイピングのやり方しらないし PythonでスクレイピングといったらSelenium 5chもただリクエスト投げるだけだとヘッダとかUAの不備ではじかれるからスクレイピングの方が良いと思う 仮にいま弾かれなくても時間の経過とともにUAが古くなって弾かれたり5chの仕様変更で弾かれたり…
かつて俺がつくったスクリプトももう動かないしな >>12
ウェブブラウザをプログラムから操作して情報を抜き取ったりリクエストを投げたりする 今の所クラウド上でスクレイピングのプログラムを動かすことを想定してて、メモリ使用量が多すぎると金がかかってしまうので
Pythonプログラムのメモリ使用量を常に監視しなければならない
その方法を調べた
https://www.haya-programming.com/entry/2019/07/16/230227
import os, psutil
process = psutil.Process(os.getpid())
process.memory_info.rss # メモリ使用量(Byte)
かんたん >>14
いうほど面白くないよ
初心者はセキュリティやウェブスクレイピングなんかより普通のウェブをやったほうが100倍楽しい
俺はTwitterのフォロワーを増やしたいから仕方なくやる >>> import os, psutil
>>> process = psutil.Process(os.getpid())
>>> process.memory_info().rss
20082688
ただREPLを起動しただけで20MB以上メモリを食ってる
これにSeleniumを載っけたらどうなるのか… >>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> process.memory_info().rss
31748096
31MBちょっと
これなら大丈夫かな Python自体は31MBだけどChromeは別プロセスで動いてるなこれ
ちなみにChromeは34MB
時間経過とともにメモリが肥大したらアウト まずはクラウド上に5chに勝手に書き込むアプリをデプロイしよう 有料の自動テストツールで作り出したらseleniumに戻れなくなった 当然ながらこのアプリは外部から操作出来たほうがいい
リクエストを受けられるようにFlaskを導入すべきか… >>22
テストしたいわけじゃないからどうでもいい 昔フリマサイトの商品がまだ売ってるか監視するの作って無在庫転売してた >>25
在庫なしで転売なんてあるんだ、初めて知ったわ
かしこいな とりあえずこのスレに書き込むプログラムを書いてみるか
うへうへ
でけたわ
https://i.imgur.com/1pbvfgb.png
後はCookieを既存のものによしなにすれば書き込めると思う
そんなに難しくはないから頑張れ できた
とりあえずUAの偽装で回避したが、UAそのままだと余所エラーが出ちまうな
https://pastebin.pl/view/8e96d4f4 あと広告を全て読み込むまでページの遷移ができないというのも無駄 Cookieのセットもしてないしな
別のところでsession idを貰ってきてCookieにセットしたとしても、expireするたびに再度別の所から貰ってくる必要が出てしまうので何とか自力で通りたいところ pypiにあるlatest-user-agentsが良さそうだな
これぶち込むか 以下に対応した
- UAの自動偽装 (latest-user-agentsを利用)
- 広告の読み込みをスキップ (DesiredCapabilitiesとWebDriverWaitを併用) 実験結果
- Cookieの管理はプログラムが生きている間はSeleniumが自動的にやってくれる→明示的にSetする必要無し
- Seleniumでは画面外の要素はクリックできない→execute_scriptメソッドを使ってjsからclick()を実行すべき /stop/へのPOSTで動作停止
/<server>/<board>/<thread>/へのPOSTで5chへの書きこみ
POSTのパラメータは以下
- body(str): 書き込む内容
- name(str|None): 名前
- mail(str|None): メール
- cycle(int|None): 書きこみ周期(秒) 俺はNode.is+puppeteerでやってるな >>57
うむ
動かないと虚無だけどな
>>61
puppeteerってのは初めて聞いた パチスロのデータ公開してるところから自動で抜けたりするの?
できたら楽そうでいいな ■ このスレッドは過去ログ倉庫に格納されています