将网页抓取结果加载到Pandas DataFrame中 [英] Loading web scraping results into Pandas DataFrame
本文介绍了将网页抓取结果加载到Pandas DataFrame中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
sauce = urllib.request.urlopen('https://www.iproperty.com.my/sale/selangor/all-commercial/?q=UOA%20Business%20Park').read()
soup = bs.BeautifulSoup(sauce,'html.parser')
price = soup.find_all('ul',class_='listing-primary-price jMWEse')
BUA = soup.find_all('li',class_='attributes-price-per-unit-size-item builtUp-attr fsbnan')
for data in price:
Price = data.text
print(Price)
for data in BUA:
BUA = data.text
print(BUA)
打印价格和 BUA 给我以下结果:
Price:
RM 1,067,490
RM 2,246,160
RM 929,160
RM 1,321,000
RM 103,840,000
BUA:
Built-up : 1,227 sq. ft.Built-up : 1,227 sq. ft.
Built-up : 2,292 sq. ft.Built-up : 2,292 sq. ft.
Built-up : 1,044 sq. ft.Built-up : 1,044 sq. ft.
Built-up : 1,335 sq. ft.Built-up : 1,335 sq. ft.
Built-up : 118,000 sq. ft.Built-up : 118,000 sq. ft.
我的问题是,如何将 Price 和 BUA 加载到Pandas Dataframe中,因为我希望同时加入两者并打印最终结果,例如:
My questions is, how can I load Price and BUA into a Pandas Dataframe because I would like to join the both of them and print an end result with something like:
Price: BUA:
0 RM 1,067,490 Built-up : 1,227 sq. ft.Built-up : 1,227 sq. ft.
1 RM 2,246,160 Built-up : 2,292 sq. ft.Built-up : 2,292 sq. ft.
2 RM 929,160 Built-up : 1,044 sq. ft.Built-up : 1,044 sq. ft.
3 RM 1,321,000 Built-up : 1,335 sq. ft.Built-up : 1,335 sq. ft.
4 RM 103,840,000 Built-up : 118,000 sq. ft.Built-up : 118,000 sq. ft.
另一个之所以要将它们放入Pandas Dataframe是因为以后需要在Excel中进行一些计算。
Another reason why I want to put them into a Pandas Dataframe is because I need to do some calculations in Excel later on.
推荐答案
I贝尔您需要:
a = [data.text for data in price]
b = [data.text for data in BUA]
df = pd.DataFrame({'price':a, 'BUA':b}, columns=['price','BUA'])
这篇关于将网页抓取结果加载到Pandas DataFrame中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文