0
私はウェブサイトスクレーパーの作成に取り組んでいます。現在のページを変更するためのフォームがあります。Ruby Net :: HTTP ::投稿投稿フォーム
これはPOSTリクエストのフォームを送信する方法ですが、同じページを何度も繰り返しフェッチしているようです。ここで
は、いくつかのサンプルコードです:
pages = {
"total_pages" => 19,
"p1" => '1234/1456/78990/123324345/12143343214345/231432143/12432412/435435/',
"p2" => '1432424/123421421/345/435/6/65/5/34/3/2/21/1243',
..
..
..
}
idx = 1
p_count = pages["total_pages"]
#set up the HTTP request to change pages to get all the auction results
uri = URI.parse("http://somerandomwebsite.com?listings")
http = Net::HTTP.new(uri.host, uri.port)
req = Net::HTTP::Post.new(uri.request_uri)
p_count.times do
puts "On loop sequence: #{idx}"
pg_num = "p#{idx}"
pg_content = pages["#{pg_num}"]
req.set_form_data({"page" => "#{pg_num}", "#{pg_num}" => "#{pg_content}"})
response = http.request(req)
page = Nokogiri::HTML(response.body)
idx = idx + 1
end
page
が変化したことがないように見えます。適切なパラメータが渡されていることを確認するたびに、完全な要求がどのように見えるかを確認する方法はありますか? req
について何かを決定することは事実上不可能なようです。
「[mcve]」をお読みください。コードは実行されません。問題を特定するためにテストするために、コードを変更する必要があります。それは私たちの時間を無駄にする。 Net :: HTTPではなく、Ruby用に存在する多くのHTTPクライアントの1つを使用することをお勧めします。 Net :: HTTPは新しいサーバータイプを発明している場合には優れていますが、特にページをリクエストしているときには、通常のHTTP作業では非常に低レベルです。リクエストを見る限り、httphttpbin.orgは非常に便利です。 –