2016-11-28 11 views
0

を使用してデフォルトではありません: https://report.boonecountymo.org/mrcjava/servlet/SH01_MP.I00290s、すべてのテーブルの行を取得し、私は次のサイトからすべてのテーブルのデータをこすりしようとしていますBeautifulSoup

表は(ヘッダー行を含めない)230行の合計を持っていますが、デフォルトに最初の50行テーブルの次のページボタン(矢印)をクリックすると、新しいセットが読み込まれますが、Webページは変更されません。 BeautifulSoupを使用して、デフォルトの50だけではなく230行すべてを取得するにはどうすればよいですか?

これは私が使用していたコードは次のとおりです。

import csv 
import requests 
from bs4 import BeautifulSoup 

url = "http://www.showmeboone.com/sheriff/JailResidents/JailResidents.asp" 
response = requests.get(url) 
html = response.content 

soup = BeautifulSoup(html,"html.parser") 
table = soup.find('tbody', attrs={'class':'stripe'}) 

list_of_rows = [] 
for row in table.findAll('tr'): 
    list_of_cells = [] 
    for cell in row.findAll('td'): 
     text = cell.text.replace(' ', '') 
     list_of_cells.append(text) 
    list_of_rows.append(list_of_cells[1:]) 

outfile = open("./inmates.csv", "w", newline='') 
writer = csv.writer(outfile) 
writer.writerow(["Last", "First", "Middle", "Gender", "Race", "Age", "City", "State"]) 
writer.writerows(list_of_rows) 

答えて

1

あなたはURLでmax_rowsパラメータを設定することができます。

https://report.boonecountymo.org/mrcjava/servlet/SH01_MP.I00290s?max_rows=500

+0

は、@jinksPadlockをありがとう!それは完璧に働いた。私は迅速な対応に感謝します。 –

+0

テーブルに表示する行の最大数を設定する方法がない場合は、最初のページ、次に2番目のページ、3番目のページなどの結果を取得する方法はありますか? –

+0

テーブルが入力値の設定からリロードするため、スクリプトでjavascriptを処理する必要があります。セレンのようなものがそうすることができます。 – jinksPadlock

関連する問題