Error object has no attribute text - 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: Error object has no attribute text (/thread-12181.html) |
Error object has no attribute text - hcyeap - Aug-13-2018 Hi all, i am new to Python and am following examples found here https://medium.freecodecamp.org/how-to-scrape-websites-with-python-and-beautifulsoup-5946935d93fe to try to scrap text and prices from certain website. It returned error although i followed the steps. Not sure what happened. My code as per below: # import libraries import requests import urllib from bs4 import BeautifulSoup # specify the url quote_page='http://www.bloomberg.com/quote/SPX:IND' # query the website and return the html to the variable ‘page’ page = urllib.request.urlopen(quote_page) # parse the html using beautiful soup and store in variable `soup` soup = BeautifulSoup(page,'html.parser') # Take out the <div> of name and get its value name_box = soup.find('h1', attrs={'class':'companyName__99a4824b'}) name = name_box.text.strip # strip() is used to remove starting and trailing print (name)this the text to be scrapped <h1 class="companyName__99a4824b">S&P 500 Index</h1> traceback: name = name_box.text.strip # strip() is used to remove starting and trailing AttributeError: 'NoneType' object has no attribute 'text' Appreciate your guidance. Thank you. HC RE: Error object has no attribute text - snippsat - Aug-13-2018 look at what soup give you back,so no info about stock is given that's why you get NoneType error.One of the lines: <p>Your usage has been flagged as a violation of our <a href="http://www.bloomberg.com/tos" rel="noopener noreferrer" target="_blank">terms of service</a>tos(Terms Of Service) Quote:You shall not use or attempt to use any “scraper,” “robot,” “bot,” “spider,” “data mining,” “computer code,”So maybe find site a that more friendly that this,there may be a way be around,but not worth the effort. It's just stock info a lot of sites has this for free with API and JSON output. ALPHA VANTAGE | List of sites. RE: Error object has no attribute text - heiner55 - May-21-2019 If you need quotes, you can use iex: #!/usr/bin/python3 import requests, json url = "https://api.iextrading.com/1.0/stock/ibm/quote" rsp = requests.get(url) if rsp.status_code in (200,): str = rsp.text.strip() # json print(str) print() else: print("ERROR:", rsp.status_code) print(rsp.text + "\n\n") RE: Error object has no attribute text - buran - May-21-2019 @heiner55:
|