You can stay with requests
+BeautifulSoup
approach. You just need to simulate the underlying requests going to the server when you click the More blogs
button and scroll down the page.
Here's the code that prints all of the blog post image titles from the http://hypem.com/blogs page:
from bs4 import BeautifulSoup
import requests
def extract_blogs(content):
first_page = BeautifulSoup(content)
for link in first_page.select('div.directory-blog img'):
print link.get('title')
# extract blogs from the main page
response = requests.get('http://hypem.com/blogs')
extract_blogs(response.content)
# paginate over rest results until there would be an empty response
page = 2
url = 'http://hypem.com/inc/serve_sites.php?featured=true&page={page}'
while True:
response = requests.get(url.format(page=page))
if not response.content.strip():
break
extract_blogs(response.content)
page += 1
Prints:
Heart and Soul
Avant-Avant
Different Kitchen
Ladywood
Orange Peel
Phonographe Corp
...
Stadiums & Shrines
Caipirinha Lounge
Gorilla Vs. Bear
ISO50 Blog
Fluxblog
Music ( for robots)
Hope this gives you at least the basic idea on how to scrape the web page contents in this case.