def test_parsed_profile_response(self): self.setup() profile = Twitter(username="******") profile.save() response = self.client.get("/twitter/fernando_cezar") self.assertEqual(response.status_code, 200) self.teardown()
def scrape_twitter(username): response = requests.get('http://twitter.com/' + username) if response.status_code != 200: return False profile = Twitter.query.filter_by(username=username).first() if not profile: profile = Twitter(username=username) html = Soup(response.content) obj = html.find("li", {"class": "ProfileNav-item ProfileNav-item--followers"}) profile.popularity_index = obj.findAll("span")[-1].text if obj else "0" obj = html.find("h1", {"class": "ProfileHeaderCard-name"}) profile.full_name = obj.text if obj else "" obj = html.find("p", {"class": "ProfileHeaderCard-bio u-dir"}) profile.description = obj.text if obj else "" obj = html.find("img", {"class": "ProfileAvatar-image "}) profile.picture_url = obj["src"] if obj else "" return profile.save()