如何通过不更改 URL 的“显示更多”按钮获取数据?

戴帽

我正在尝试使用站点搜索关键字从 Vogue 中抓取文章标题和链接。我无法获得前 100 个结果,因为“显示更多”按钮掩盖了它们。我以前通过使用更改的 URL 解决了这个问题,但是 Vogue 的 URL 没有更改为包含页码、结果编号等。

import requests
from bs4 import BeautifulSoup as bs

url = 'https://www.vogue.com/search?q=HARRY+STYLES&sort=score+desc'
r = requests.get(url)
soup = bs(r.content, 'html')

links = soup.find_all('a', {'class':"summary-item-tracking__hed-link summary-item__hed-link"})
titles = soup.find_all('h2', {'class':"summary-item__hed"})

res = []
for i in range(len(titles)):
    entry = {'Title': titles[i].text.strip(), 'Link': 'https://www.vogue.com'+links[i]['href'].strip()}
    res.append(entry)

关于如何通过“显示更多”按钮抓取数据的任何提示?

哈桑·胡塞因·尤塞尔

您必须通过开发人员工具检查网络。然后你必须确定如何向网站请求数据。您可以在屏幕截图中看到请求和响应。

网络

如您所见,该网站正在使用页面参数。

回复

每页有 8 个标题。所以你必须使用循环来获得 100 个标题。

代码:

import cloudscraper,json,html
counter=1
for i in range(1,14):
    url = f'https://www.vogue.com/search?q=HARRY%20STYLES&page={i}&sort=score%20desc&format=json'
    scraper = cloudscraper.create_scraper(browser={'browser': 'firefox','platform': 'windows','mobile': False},delay=10)
    byte_data = scraper.get(url).content
    json_data = json.loads(byte_data)
    for j in range(0,8):
        title_url = 'https://www.vogue.com' + (html.unescape(json_data['search']['items'][j]['url']))
        t = html.unescape(json_data['search']['items'][j]['source']['hed'])
        print(counter," - " + t + ' - ' + title_url)
        if (counter == 100):
            break
        counter = counter + 1

输出:

输出

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过URL更改语言环境?

如何通过SQL查询更改Wordpress数据库中的URL永久链接

如何在烧瓶中通过URL路由获取下拉值并更改页面?

如何通过更改网站的URL从HTML输入获取烧瓶中的数据

如何从共享按钮获取pkpass文件的URL?

如何使用按钮更改页面URL

如何通过API URL显示图像?迅速

如何通过URL动态更改输入值

如何通过更改状态来更改URL

如何通过URL获取图像?(JavaScript)

如何通过url请求获取内容?

Android,如何通过HttpClient()从URL获取cookie?

如何从连续的URL获取数据

PHP通过单击Href链接并以相同的URL显示结果来从MySQL获取数据

PHP联系论坛-单击“发送”按钮后如何使其不更改url?

如何在不更改控制器名称的情况下更改URL的显示方式?(第4条)

单击“更多”按钮后如何显示数据库的全部内容

重定向而不更改显示的URL

按钮在javascript中单击后如何显示“没有更多数据”消息

如何通过Utgard直接访问OPC Server数据(不更改(Item item,ItemState状态))?

使用.htaccess删除部分显示的URL,而不更改$ _GET

如何通过URL从网站获取数据

如何在更多按钮前显示 TextView?

加载 url 而不更改 url

HTML 按钮 - 如何动态更改 url 内容

如何获取更改后的 url 以发布数据?

Beatifulsoup:如何通过 url 获取图像大小

通过更改 url 而不更改站点来更改 localstorage

如何通过api获取媒体url