<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _search_pn(self, href=None, limit=None, embed_items=None, embed_tracks=None, embed_metadata=None, embed_insights=None):
 """Function called to retrieve pages 2-n."""


        url_components = urlparse(href)
        path = url_components.path
        data = parse_qs(url_components.query)

        # Change all lists into discrete values.
        for key in data.keys():
            data[key] = data[key][0]

        # Deal with limit overriding.
        if limit is not None:
            data['limit'] = limit

        # Deal with embeds overriding.
        final_embed = helper.process_embed_override(data.get('embed'),
                                                    embed_items,
                                                    embed_tracks,
                                                    embed_metadata,
                                                    embed_insights)
        if final_embed is not None:
            data['embed'] = final_embed

        raw_result = self.get(path, data)

        if raw_result.status < 200 or raw_result.status > 202:
            raise APIException(raw_result.status, raw_result.json)
        else:
            result = raw_result.json

        return result