-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcode_1.py
48 lines (42 loc) · 1.56 KB
/
code_1.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
#Husain Shaikh
import selenium.webdriver as webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
print("This program traverses the wikipedia website until it reaches the Language page.")
traversed=[]
start=input("Please enter a search term to start with : ")
title=""
url="https://en.wikipedia.org/wiki/"
surl=url+start
browser=webdriver.Safari()
browser.get(surl)
title=WebDriverWait(browser,2).until(EC.presence_of_element_located((By.XPATH, '//*[@id="content"]/h1')))
traversed.append(title.text)
title=title.text
flag=0
if(title=="language" or title=="Language" or title=="languages" or title=="Languages"):
flag=1
count=0
while(not (title=="language" or title=="Language" or title=="languages" or title=="Languages" or flag==1)):
new_url=WebDriverWait(browser,2).until(EC.presence_of_element_located((By.XPATH, '//*[@id="mw-content-text"]/div/p/a')))
count+=1
title=str(new_url.text)
new_url=WebDriverWait(browser,2).until(EC.presence_of_element_located((By.XPATH, '//*[@id="mw-content-text"]/div/p/a'))).click()
if(title in traversed):
flag=0
print("It makes a loop!")
traversed.append(title)
break
traversed.append(str(title))
print(title)
time.sleep(3)
browser.close()
if("language" in traversed or "Language" in traversed or "languages" in traversed or "Languages" in traversed):
flag=1
if(flag==1):
print("We found the page in {} iterations.".format(count))
else:
print("We could not find the page!")
print(str(traversed))