-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharab_org.py
52 lines (51 loc) · 1.69 KB
/
arab_org.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from selenium import webdriver
import time
import json
import re
from selenium.webdriver.support.ui import Select
FILE_NAME = 'file-path'
with open(FILE_NAME,'w') as f:
a = []
json.dump(a,f)
def save(x):
with open(FILE_NAME,'w') as f:
json.dump(x,f)
pause_time = 4
DRIVER_PATH = 'file-path'
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
driver.get('https://arab.org/directory?wpbdp_view=all_listings')
while True:
div = driver.find_elements_by_class_name('listing-title')
div_det = driver.find_elements_by_class_name('excerpt-content')
for i in range(len(div)):
key = {}
try:
a = div[i].find_element_by_tag_name('a')
print(a.text)
print(a.get_attribute('href'))
key['organisation_name'] = a.text
key['organisation_link'] = a.get_attribute('href')
except:
key['organisation_name'] = "-"
key['organisation_link'] = "-"
try:
a = div_det[i].find_element_by_class_name('listing-details')
vals = a.find_elements_by_class_name('field-label')
valb = a.find_elements_by_class_name('value')
for j in range(len(vals)):
print(vals[j].text)
print(valb[j].text)
key[vals[j].text] = valb[j].text
except Exception as e:
print(e)
with open(FILE_NAME) as file:
data = json.load(file)
data.append(key)
save(data)
print(key)
try:
button = driver.find_element_by_class_name('next')
button.click()
time.sleep(pause_time)
except:
break