私はBeautifulSoupを使用してデータをスクリーニングしていますが、すべてが自分のコードで動作しています。私はこのコードを実行するたびにBeautifulSoupで細かい部分を削り取ることができません
from urllib.request import urlopen
from bs4 import BeautifulSoup
import requests
import time
import json
import io
url = "https://www.proptiger.com/all-projects"
# for all pages https://www.proptiger.com/all-projects?page=2
html = urlopen(url)
soup = BeautifulSoup(html, "html.parser")
container = soup.find_all("section", {"class":"project-card-main-wrapper"})
print(len(container))
newFile = "Prop_Data.csv"
f = open(newFile, "w", encoding = "utf-8")
Headers = "Project, Url, City, Builder, Price\n"
f.write(Headers)
#f.close()
for i in container:
contain = i.find_all("div", {"class":"proj-name"})
project_name = contain[0]['title']
url2 = i.div['data-url']
url1 = "https://www.proptiger.com"
url = url1+url2
get_city = i.find_all("span", {"itemprop":"address"})#or by div, {"class":"loc"}
city = get_city[0]["title"]# or by getcity.text
builder = i.find_all("div", {"class":"projectBuilder put-ellipsis"})
bName = builder[0].text
price = i.find_all("div", {"class":"project-price"})
pricereal = price[0].text#not able to print the print says list out of index
print(pricereal)
#f.write("{}".format(project_name) +",{}".format(url)+",{}".format(city)+",{}".format(bName)+"\n")
#f.close()
今では範囲外のリストは言う:私は不動産のウェブサイトをこすりしようとprice.Websiteをこすりすることができませんが「https://www.proptiger.com/all-projects」は、以下の
は私のコードですです。以下私は最小価格と最大価格をしたいので、私はテキストを行う
<div class="project-price" itemscope="" itemtype="https://schema.org/PriceSpecification"><span itemprop="minPrice">₹ 32.4 L</span><span itemprop="maxPrice">- ₹ 88.0 L</span>
<!-- -if(project.avgPricePerUnitArea)div.text-right.price-perunit ₹/sq ft-->
</div>
:価格のhtmlですと56 = -6のアイテムの価格を取得し、範囲外にリストします。誰かが私が間違っていることができますか?
こんにちは、私のコードでそれを行うことは可能ですか?もし私がbeautifulSoupだけを使ってそれを望むのであれば? –
私の知る限りでは:いいえ、それは不可能です。 BeautifulSoupは動的に生成されたアイテムを処理できません。ありがとう。 – SIM
@ Mr.Bonesの編集を参照してください。 – SIM