1. ホーム
  2. python

[解決済み] scrapyとpythonを使ったtsetmc.comのウェブページからのウェブスクレイピング

2022-02-14 01:49:58

質問

このウェブページをスクレイピングしたいのですが。 http://www.tsetmc.com/loader.aspx?ParTree=151311&i=42354736493447489

以下は私のコードです。 scrapy shell "http://www.tsetmc.com/loader.aspx?ParTree=151311&i=42354736493447489" で、次の図に示したこの価格を取得したいのです(価格と関連するクロームのインスペクションは図に示されています)。 クリックすると画像1が表示されます

そして、次のコードを書きました。 response.xpath('//*[@id="dbp]') , しかし、出力は [ ] . クリックすると画像2が表示されます

少し混乱しています。なぜなら、このウェブサイトから選択したいすべての数字に、このエラーが発生するからです。

どなたか教えていただけると幸いです :)

解決方法は?

使用方法 セレン javascriptはscrapyでは実行できないので、javascriptが動的に読み込まれたデータを抽出するために使用します。

from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Chrome()

driver.get('http://www.tsetmc.com/loader.aspx?ParTree=151311&i=42354736493447489')
time.sleep(5) # delay 5 sec
page_source = driver.page_source

soup = BeautifulSoup(page_source,'html.parser')
# print(soup.prettify())
prices = soup.find('div', {'class': 'box6 h80'}).find('table')

for td in prices.find_all('tr')[1]:
    print(td.getText()) # all td text garbed.

driver.quit()