Using BeautifulSoup
and requests
i have made a program that puts all the data of a few divs inside of one div with the class rightContent
. Here is the code:
import requests
from bs4 import BeautifulSoup
url = "https://senf.ir/Company/5674580/اهن-الات"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
div = soup.find('div', {'class': 'rightContent'}) #<div >
print(div.text)
This code works very well, the only problem is the output look very weird and almost unusable. Output:
اهن الات - آهن آلات و ضایعات
استان :
گلستان
شهر :
گرگان
گروه :
صنعت
زیر گروه :
آهن آلات و ضایعات
آدرس اهن الات:
گلستان-گرگان- بلوار استراباد- جنب نبروگاه فشار قوی برق - بازار اهن پلاک اول
مدیریت اهن الات:
مهرشاد قادری
تلفن :
برای مشاهده اطلاعات لطفا
وارد شوید
و در صورت عدم عضویت از اینجا
ثبت نام کنید
همراه :
برای مشاهده اطلاعات لطفا
وارد شوید
و در صورت عدم عضویت از اینجا
ثبت نام کنید
ایمیل :
بازدید :
2
Process finished with exit code 0
My Goal: How could i turn this output into a dictionary?
One of my main problems doing this was the randomly placed spaces and the language being persion not English.
CodePudding user response:
Look for titles and values tags:
import requests
from bs4 import BeautifulSoup
url = "https://senf.ir/Company/5674580/اهن-الات"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.findAll('div', {'class': 'DetailsTitle'})
value = soup.findAll('div', {'class': 'DetailsValue'})
values = []
titles = []
for data in title:
values.append(data.get_text().replace('\n', '').replace('\r', '').replace(' ', ''))
for data in value:
titles.append(data.get_text().replace('\n', '').replace('\r', '').replace(' ', ''))
value_title_dict = dict(zip(values, titles))
value_title_dict
would be:
{'استان :': 'گلستان', 'شهر :': 'گرگان', 'گروه :': 'صنعت', 'زیر گروه :': 'آهن آلات و ضایعات', ' آدرساهن الات:': 'گلستان-گرگان- بلوار استراباد- جنب نبروگاه فشار قوی برق - بازار اهن پلاک اول ', ' مدیریت اهن الات:': 'مهرشاد قادری', 'تلفن :': 'برای مشاهده اطلاعات لطفاوارد شویدو در صورت عدم عضویت از اینجا ثبت نامکنید', 'همراه :': 'برای مشاهده اطلاعات لطفاوارد شویدو در صورت عدم عضویت از اینجا ثبت نامکنید', 'ایمیل :': '', 'بازدید :': '40'}