'Yields tuples containing:
* Newly found URL
* The FuzzableRequest instance passed as parameter
* The HTTPResponse generated by the FuzzableRequest
* Boolean indicating if we trust this reference or not
The newly found URLs are extracted from the http response body using
one of the framework\'s parsers.
:param resp: HTTP response object
:param fuzzable_req: The HTTP request that generated the response'

def _body_url_generator(self, resp, fuzzable_req):

    try:
        doc_parser = parser_cache.dpc.get_document_parser_for(resp)
    except BaseFrameworkException as w3:
        om.out.debug(('Failed    to    find    a    suitable    document    parser.    Exception    "%s"' % w3))
    else:
        (parsed_refs, re_refs) = doc_parser.get_references()
        dirs = resp.get_url().get_directories()
        only_re_refs = (set(re_refs) - set((dirs + parsed_refs)))
        all_refs = itertools.chain(dirs, parsed_refs, re_refs)
        resp_is_404 = is_404(resp)
        for ref in unique_justseen(sorted(all_refs)):
            possibly_broken = (resp_is_404 or (ref in only_re_refs))
            (yield (ref, fuzzable_req, resp, possibly_broken))
