Getting data correctly from  tag with beautifulsoup and regex
As it happens, there are positive answers to each of your questions:


with Beautiful Soup you can remove the WebRupee span with replace_with() entirely....

webrupee_element = soup.find('span', {'class': 'WebRupee'})
webrupee_element.replace_with('')


... then, when you get the text value of the product_price_tag_element.text it will not have the symbol.

EDIT: Of course, it would be faster/better to do:

for wr in product_price_tag_element.find('span'):
    wr.replace_with('')

Your regex is not matching the value properly because the &amp;nbsp; character may not be mapping directly to the regular ' ' character in your regex. You should use the 'whitespace' escape-sequence \s in your regex instead of ' ', like reg = ur'^\s*₹?\s*(\d+)\s*'
Unicode string literals in python should be escaped with either the \u or \U escape, but they are different:


  Specific code points can be written using the \u escape sequence, which is followed by four hex digits giving the code point. The \U escape sequence is similar, but expects 8 hex digits, not 4.


in your case you should use lower-case \u
You can remove the utf-8/unicode declaration if you encode the values in the more-pythonic way of unicode escapes.