2017-01-11 15 views
0

これは私の最初の投稿ですので、重複している場合はお詫びしますが、私の関連する回答は見つかりませんでした。 1つがある場合は私に知らせてくださいと私はそれをチェックします。Python検索とスクレイプ結果

バークレーの賃貸料上限を見つけるためにウェブサイト(下)を擦ってみようとしていますが、私が抱えている問題は、検索ボックスに住所を挿入して次のページから情報をスクラップする方法。これまで私が扱ったURLは検索入力で変更されましたが、このウェブサイトでは変更されませんでした。最高の賭けはbs4を使用して情報を掻き集め、request.sessionrequests.postをそれぞれの後続アドレスに取得すると考えました。ポストが送られた後

#Berkeley Rent Scrape 
from bs4 import BeauitfulSoup 
import sys 
import requests 
import openpyxl 
import pprint 
import csv 

#wb = openpyxl.load_workbook('workbook.xlsx', data_only=True) 
#sheet = wb.get_sheet_by_name('worksheet') 


props_payload={'aspnetForm':'1150 Oxford St'} 
URL = 'http://www.ci.berkeley.ca.us/RentBoardUnitSearch.aspx' 

s = requests.session() 
p = s.post(ULR, data = props_payload) 
soup = BeauitfulSoup(p.text) 
data = soup.find_all('td', class="gridItem") 

UPDATEどのように新しいWebページから情報を得るのですか?つまり、request.postを使用するためのフレームワークとは何ですか?request.getまたはbs4は、URLが変更されていないときにかき回されますか?

私はそれがこのように見えると思っていましたが、私はそこにどこかでGETリクエストが必要だと確信していますが、URLが変わっていないときのセッションの仕組みを理解していません。

私はCSVファイルとExcelシートに情報をエクスポートしますが、後でそれを処理できます。肉を途中から取り除きたいだけです。

ありがとうございました!

+1

ここに実際の質問は表示されません...あなたが投稿したソリューションで何が間違っていますか? –

+0

ありがとう、私は少し説明につかまった –

+1

この質問はあまりにも広範です。スタックオーバーフローは、他の人にチュートリアルやコードの記述を依頼できる場所ではなく、ヘルプやガイダンスが必要なときに特定の質問をすることができる場所です。この場合、あなたはこのコードを書く方法を誰かに教えるように効果的に求めています。コードサンプルに基づいて、 'data'に必要なものが含まれているように見えます...そうではありませんか?具体的にしてください。 – garrettmurray

答えて

0

リンクでわかるように、この検索はリダイレクトではなく、URLにクエリを渡すことはできません。 ASP.NETバックエンドでどのように直接作業できるかわかりません(バックエンドでの認証/検証のために難しいかもしれません)。 いくつかの自動化(テスト)ツール(PhantomJSやCasperJSなど)が役立つと思います。これは、レンダリングされたWebページを制御することができ、応答後にプログラムで入力を入力してデータを取得することができます

+0

どちらもJavaScriptだけが正しいですか? –

+0

PhantomJSはスタンドアロンアプリケーション(ヘッドレスブラウザ)で、CasperJSは単なるJSラッパーです。 PythonでPhantomJSを使うことができます。例http://stackoverflow.com/questions/13287490/is-there-a-way-to-use-phantomjs-in-python –