0

私は、.aspx Webページから情報をクロールするためのスクラップコードを作成しています。私はデータベース内のすべてのレコードを取得したいが、私はレコードのインデックスのリストを持っていない。私はインデックスが1から9000000までの整数であることだけを知っています。したがって、私はforループでインデックスにブルートフォースを使用することを考えています。複数の引数でforループを多重処理する方法

各レコードから特定の情報を取得したいと考えています。そこで、私はbeautifulsoupとpandas.DataFrameを使用して、必要な情報を保存しました。次に、データフレームを追加してレコードを収集します。例えば

df_all = pandas.DataFrame(col= ['A', 'B', 'C']) 
# id: Unique id of each record; df_all: the dataframe that stores the records 
def func(id, df_all): 
    """ 
    Use beautifulsoup to collect the info from the webpage 
    """ 
    df_temp = pd.DataFrame([1,2,3], col= ['A', 'B', 'C']) 
    df_all = df_all.append(df_temp, ignore_index= True) 
    return df_all 

私はループが同時にFUNC機能を実行するためのいくつかの使用を考えています。たとえば、1番目のクライアントは1〜22500000です。 2番目のクライアントは22500001〜4500000を実行します。等々。次に、各クライアントの結果を組み合わせることができます。私はipyparallel、multiprocessing.pool、およびjoblibを使用しようとしました。しかし、私の関数の構造は並列処理には適切ではないようです。並列forループタスクを実行するために構造を変更するにはどうすればよいですか?または、データベースからデータを取得するより良い方法はありますか?データベースには29k +レコードしかありません。 1から90000000までのインデックスにブルートフォースを使用することは、実際にこれにアプローチする最善の方法ではありません。

+0

詳細をご覧ください。あなたはそのサイトを所有していますか、それとも他の人ですか?それが他人のものなら、どのようにデータベースに接続していますか?なぜインデックスが必要ですか?どこでBeautifulSoupを呼び出していますか?どのオブジェクトが返されますか?レコードはどのように見えますか? Pandasのデータフレームにレコードを格納する目標はありますか? – ddg

+0

レコードの情報を呼び出す最も簡単な方法は、対応するIDを使用することです。各レコードは独自のWebページを持っているので、私は関数内で美しいスープを呼び出しました。リンクはhttps://propaccess.trueautomation.com/clientdb/Property.aspx?prop_id=12345のようなものです。しかし、私はリンクからクッキーを取得する必要があります:https://propaccess.trueautomation.com/clientdb/?cid=39。次に、ID番号を – whh1294

答えて

0

汚れていても問題ないですが、うまくいくと思います。

辞書マッピング持っ

  • はすべて保存し、検索ページの「所有者名」検索を実行します:{owner nameprocess_id}アルファベットの各文字については

    を、あなたのプログラムを持っていますprocess_ids辞書

  • すべてのページが保存されるまで、次のページに移動します。

検索を実行して次のページに進むには、http POSTを送信します。開発者ツールを開き、ボタンをクリックして、ブラウザが送信した内容を見てから、Pythonから同じものを送信してください。

その後、process_idsをすべて取得したら、辞書を繰り返して各レコードページに簡単にアクセスできます。

+0

に置き換えて各ページに接続します。request.postを使用しようとしました。しかし、Webページはフォームデータを使用してサーバーを要求していないようでした。私はhtmlコードを調べて、それがいくつかのクッキーによって駆動されていることを発見しました。これでrequest.postをどのように使用するのかを明らかにすることができますか? – whh1294

関連する問題