I was trying to get the postcodes for DFS, for that i tried getting the href for each shop and then click on it, the next page has shop location from which i can get the postal code, but i am able to get things working, Where am i going wrong?
I tried getting upper level attribute first td.searchResults
and then for each of them i am trying to click on href with title DFS
and after clicking getting the postalCode. Eventually iterate for all three pages.If there is a better way to do it let me know.
driver = webdriver.Firefox()driver.get('http://www.localstore.co.uk/stores/75061/dfs/')html = driver.page_sourcesoup = BeautifulSoup(html)listings = soup.select('td.searchResults')for l in listings:while True: driver.find_element_by_css_selector("a[title*='DFS']").click()shops= {}#info = soup.find('span', itemprop='postalCode').contentshtml = driver.page_sourcesoup = BeautifulSoup(html)info = soup.find(itemprop="postalCode").get_text()shops.append(info)
Update:
driver = webdriver.Firefox()
driver.get('http://www.localstore.co.uk/stores/75061/dfs/')
html = driver.page_source
soup = BeautifulSoup(html)
listings = soup.select('td.searchResults')for l in listings:driver.find_element_by_css_selector("a[title*='DFS']").click()shops = []html = driver.page_sourcesoup = BeautifulSoup(html)info = soup.find_all('span', attrs={"itemprop": "postalCode"})for m in info:if m:m_text = m.get_text()shops.append(m_text)print (shops)