def perform_search(search_str,results_collector): base_url = 'http://sfbay.craigslist.org' cl_html_results = requests.get(search_str) soup = BeautifulSoup(cl_html_results.text, 'html.parser') ds = DataStore(storetype='sql') for result in soup.find_all(attrs={"data-pid": re.compile('\d+')}): link_title = result.find(id='titletextonly') if link_title is None: # print "Cannot find title for entry %s", result next else: datapid = result.attrs['data-pid'] link_title_text = link_title.text link = '{0}{1}'.format(base_url, result.find('a').attrs['href']) #print "debug: {0} | {1} | {2}".format(datapid, link_title_text, link) ds.save_entry(datapid=datapid, title=link_title_text, url=link) for i in ds.new_listings: results_collector.append(i)