Web Scraping Error : Not getting expected result - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Web Scraping & Web Development (https://python-forum.io/forum-13.html) +--- Thread: Web Scraping Error : Not getting expected result (/thread-21623.html) |
Web Scraping Error : Not getting expected result - adminravi - Oct-07-2019 Hi, I am a beginner in Python programming. Of late, I have started learning web scraping after completing python programming course from Udemy. I was trying to scrape this website but unfortunately could not get the csv file. Moreover, total number is also not printing. There maybe more errors. Can you please figure it out and help me with simple explanation. I am just a couple of days old in web scraping. from bs4 import BeautifulSoup import requests import pandas as pd url = 'https://www.programmableweb.com/apis/directory' api_dict = {} api_no = 0 while True: response = requests.get(url) data = response.text soup = BeautifulSoup(data, 'html.parser') apis = soup.find_all('td',{'class':'views-field views-field-title col-md-3'}) for api in apis: name = api.find('a').text api_no += 1 #print(name) url_tag = soup.find('a',{'title':'Go to next page'}) if url_tag.get('href'): url = 'https://www.programmableweb.com' + url_tag.get('href') #print(url) else: break print('Total APIs: ',api_no) api_dict_df = pd.DataFrame.from_dict(api_dict, orient = 'index', columns = ['API name']) api_dict_df.head() api_dict_df.to_csv('api_detail.csv') RE: Web Scraping Error : Not getting expected result - adminravi - Oct-08-2019 from bs4 import BeautifulSoup import requests import pandas as pd url = 'https://www.programmableweb.com/apis/directory' api_dict = {} api_no = 0 while True: response = requests.get(url) data = response.text soup = BeautifulSoup(data, 'html.parser') apis = soup.find_all('td',{'class':'views-field views-field-title col-md-3'}) for api in apis: name = api.find('a').text api_no += 1 #print(name) url_tag = soup.find('a',{'title':'Go to next page'}) if url_tag.get('href'): url = 'https://www.programmableweb.com' + url_tag.get('href') #print(url) else: break print('Total APIs: ',api_no) api_dict_df = pd.DataFrame.from_dict(api_dict, orient = 'index', columns = ['API name']) api_dict_df.head() api_dict_df.to_csv('api_detail.csv') RE: Web Scraping Error : Not getting expected result - Larz60+ - Oct-08-2019 This code will show what's available the group you're interested in (prints out all tr's and td's) All you have to do is select the elements that you want, and then extract that data. from bs4 import BeautifulSoup import requests import pandas as pd import sys def scrape_page(): url = 'https://www.programmableweb.com/apis/directory' api_dict = {} api_no = 0 # while True: response = requests.get(url) if response.status_code == 200: data = response.text else: print(f"Unable to fetch page, bad status: {response.status_code}") sys.exit(-1) soup = BeautifulSoup(data, 'html.parser') tbody = soup.select('.views-table > tbody:nth-child(2)')[0] trs = tbody.find_all('tr') for n, tr in enumerate(trs): tds = tr.find_all('td') for n1, td in enumerate(tds): print(f"\n--------------------- tr_{n}, td_{n1} ---------------------") print(td) RE: Web Scraping Error : Not getting expected result - adminravi - Oct-08-2019 (Oct-08-2019, 03:52 AM)Larz60+ Wrote: This code will show what's available the group you're interested in (prints out all tr's and td's) Thank you very much for the solution. As you can understand, I am just a few days old in web scraping. Can you also suggest one good tutorial which I should learn from? Regards, Ravi RE: Web Scraping Error : Not getting expected result - snippsat - Oct-08-2019 (Oct-08-2019, 07:53 AM)adminravi Wrote: I am just a few days old in web scraping. Can you also suggest one good tutorial which I should learn from?Have a couple here about this topic. Web-Scraping part-1 Web-Scraping part-2 |