serpapi / public-roadmap

Public Roadmap for SerpApi, LLC (https://serpapi.com)
55 stars 5 forks source link

[Google Play Store API] Movies Pagination and see_more_token Feature Not Working #485

Closed aliayar closed 1 year ago

aliayar commented 2 years ago

Google Play Store API's pagination and see more token features are broken.

The situation with Movies Pagination is that section see_more_token is not returned for movies, tv episodes and tv shows. This is the issue with U.S location. The returned next_page_token also does not work.

play_store_next_page

The Playground | The Inspect | Google Play Store

On the other hand on different locations, Brazil is the example here, Movies results are scroll loading instead of see_more_token way of horizontal scroll loading. While normal scroll loading may show up to 100 results on Play Store Brazil location, SerpApi returns less and next_page_token is not working.

play_store_next_page_br

The Playround | The Inspect | Play Store (needs to be visited via VPN)

The problem with Books search, it is similar to Movies search that desktop version can horizontally scroll load more products. This is not like pagination but more like section pagination as in how see_more_token token works. But see_more_token is not returned. The next_page_token is also not returned but I guess it is because this page only loads sections and paginates via see_more_token.

The Playground | The Inspect | Google Playstore

play_store_next_page_books

There is no change with the locations when it comes to books. The UI is similar for U.S and other countries.

kagermanov27 commented 2 years ago

@aliayar


The situation with Movies Pagination is that section see_more_token is not returned for movies, tv episodes and tv shows. This is the issue with U.S location. The returned next_page_token also does not work.

I think I have found a way around for customers to get the data they want before we fix the issue. If you take the next_page_token from the first page search of a movies search, and use that token with store=apps or store=games results in successful results:

image

Inspect Playground


On the other hand on different locations, Brazil is the example here, Movies results are scroll loading instead of see_more_token way of horizontal scroll loading. While normal scroll loading may show up to 100 results on Play Store Brazil location, SerpApi returns less and next_page_token is not working.

One other thing I am confused is that the difference between see_more_token and next_page_token.

The way we scrape next_page_token from first page results could be found here: Link to Responsible Part

As you can see we are already extracting the first section's pagination link and serving it as next_page_token

Let me break down with an example:

Example Playground Link Example Inspect Link Example HTML Link

As you can see the item we are searching is in 3 places and these are title blocks of each section:

image

So the next_page_token we serve on first page results only serves the pagination for Movies in this case, and not TV Shows and TV Episodes. I have manually checked the next_page_token for these parts and they work with the method I described above.

@aciddjus , should refactor first page results to serve next_page_token in each organic_results section instead?

First part of this comment covers how to bypass next_page_token not working. We may even end up using this tweak to serve results. What do you think @aciddjus ?

kagermanov27 commented 2 years ago

The problem with Books search, it is similar to Movies search that desktop version can horizontally scroll load more products. This is not like pagination but more like section pagination as in how see_more_token token works. But see_more_token is not returned. The next_page_token is also not returned but I guess it is because this page only loads sections and paginates via see_more_token.

@aliayar The reason we don't get next_page_token on books is because the pagination for the first section is returned and that section does not have any other results to paginate. I have checked the html and found the next_page_token for subsequent parts. They work with the bypass method I mentioned in the above comment.

image

Opened a new issue about this in https://github.com/serpapi/public-roadmap/issues/490