私はPythonを初めて使い、プロジェクト用のWebスクレイピング用の美しいスープを使用しています。Python/Beautiful soup/pandasを使用してテーブルから選択したテキストのみをスクラップします
私は、リスト/ディクショナリ内のテキストの一部だけを取得したいと考えています。私は、次のコードで始まっ:
url = "http://eng.mizon.co.kr/productlist.asp"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
tables = soup.find_all('table')
これは私がテーブルからテーブルにデータを解析し、項目のONE助け以下のように見えた:
<table border="0" cellpadding="0" cellspacing="0" width="235">
<tr>
<td align="center" height="238"><a href="javascript:fnMoveDetail(7499)" onfocus="this.blur()"><img alt="LL IN ONE SNAIL REPAIR CREAM, SNAIL REPAIR BLEMISH BALM, WATERMAX MOISTURE B.B CREAM, WATERMAX AQUA GEL CREAM, CORRECT COMBO CREAM, GOLD STARFISH ALL IN ONE CREAM, S-VENOM WRINKLE TOX CREAM, BLACK SNAIL ALL IN ONE CREAM, APPLE SMOOTHIE PEELING GEL, REAL SOYBEAN DEEP CLEANSING OIL, COLLAGEN POWER LIFTING CREAM, SNAIL RECOVERY GEL CREAM" border="0" src="http://www.mizon.co.kr/images/upload/product/20150428113514_3.jpg" width="240"/></a></td>
</tr>
<tr>
<td align="center" height="43" valign="middle"><a href="javascript:fnMoveDetail(7499)" onfocus="this.blur()"><span class="style3">ENJOY VITAL-UP TIME Lift Up Mask <br/>
Volume:25ml</span></a></td>
</tr>
</table>
ような各項目についての表に、私は希望します上記の表の最後のデータセルから次だけ抽出する:
1)HREF = JavaScriptで4桁の番号:fnMoveDetail(7499)
クラス下2)名:S tyle3
3)クラスの下のボリューム:style3
次のように私のコードの次の行は次の通りであった:
df = pd.read_html(str(tables), skiprows={0}, flavor="bs4")[0]
a_links = soup.find_all('a', attrs={'class':'style3'})
stnid_dict = {}
for a_link in a_links:
cid = ((a_link['href'].split("javascript:fnMoveDetail("))[1].split(")")[0])
stnid_dict[a_link.text] = cid
私の目標は、個々のリンクに移動して情報を一致させるために数字を使用することですこのページを各リンクにスクレイプします。 これに最も効果的なアプローチは何ですか?
ありがとうございました! – PhiloY