Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <input type="hidden" name="fooId" value="12-3456789-1111111111" />
- <input type="hidden" name="fooId" value="**[id is here]**" />
- from BeautifulSoup import BeautifulSoup
- #Or retrieve it from the web, etc.
- html_data = open('/yourwebsite/page.html','r').read()
- #Create the soup object from the HTML data
- soup = BeautifulSoup(html_data)
- fooId = soup.find('input',name='fooId',type='hidden') #Find the proper tag
- value = fooId.attrs[2][1] #The value of the third attribute of the desired tag
- #or index it directly via fooId['value']
- from BeautifulSoup import BeautifulSoup
- #Or retrieve it from the web, etc.
- html_data = open('/yourwebsite/page.html','r').read()
- #Create the soup object from the HTML data
- soup = BeautifulSoup(html_data)
- fooId = soup.find('input',name='fooId',type='hidden') #Find the proper tag
- value = fooId['value'] #The value attribute
- import re
- reg = re.compile('<input type="hidden" name="([^"]*)" value="<id>" />')
- value = reg.search(inputHTML).group(1)
- print 'Value is', value
- html = """<html><body>
- <input type="hidden" name="fooId" value="**[id is here]**" />
- <blah>
- <input name="fooId" type="hidden" value="**[id is here too]**" />
- <input NAME="fooId" type="hidden" value="**[id is HERE too]**" />
- <INPUT NAME="fooId" type="hidden" value="**[and id is even here TOO]**" />
- <!--
- <input type="hidden" name="fooId" value="**[don't report this id]**" />
- -->
- <foo>
- </body></html>"""
- from pyparsing import makeHTMLTags, withAttribute, htmlComment
- # use makeHTMLTags to create tag expression - makeHTMLTags returns expressions for
- # opening and closing tags, we're only interested in the opening tag
- inputTag = makeHTMLTags("input")[0]
- # only want input tags with special attributes
- inputTag.setParseAction(withAttribute(type="hidden", name="fooId"))
- # don't report tags that are commented out
- inputTag.ignore(htmlComment)
- # use searchString to skip through the input
- foundTags = inputTag.searchString(html)
- # dump out first result to show all returned tags and attributes
- print foundTags[0].dump()
- print
- # print out the value attribute for all matched tags
- for inpTag in foundTags:
- print inpTag.value
- ['input', ['type', 'hidden'], ['name', 'fooId'], ['value', '**[id is here]**'], True]
- - empty: True
- - name: fooId
- - startInput: ['input', ['type', 'hidden'], ['name', 'fooId'], ['value', '**[id is here]**'], True]
- - empty: True
- - name: fooId
- - type: hidden
- - value: **[id is here]**
- - type: hidden
- - value: **[id is here]**
- **[id is here]**
- **[id is here too]**
- **[id is HERE too]**
- **[and id is even here TOO]**
- /<input type="hidden" name="fooId" value="([d-]+)" />/
- /<inputs+type="hidden"s+name="([A-Za-z0-9_]+)"s+value="([A-Za-z0-9_-]*)"s*/>/
- >>> import re
- >>> s = '<input type="hidden" name="fooId" value="12-3456789-1111111111" />'
- >>> re.match('<inputs+type="hidden"s+name="([A-Za-z0-9_]+)"s+value="([A-Za-z0-9_-]*)"s*/>', s).groups()
- ('fooId', '12-3456789-1111111111')
Add Comment
Please, Sign In to add comment