Python Web抓取多个页面超出范围



提取json文件后,我获得了该网站的大部分评论信息。我想做同样的事情,但对于它的所有页面。为什么它在这种情况下给我一个超出范围的索引

import requests
from bs4 import BeautifulSoup as bs
from random import randint
from time import sleep
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"}
url="https://www.zomato.com/beirut/deek-duke-ashrafieh/reviews?page=1&sort=dd&filter=reviews-dd"
for page in range(1,10): 
req = requests.get('https://www.zomato.com/beirut/deek-duke-ashrafieh/reviews?page=' + str(page) + '&sort=dd&filter=reviews-dd')
soup = bs(req.text, 'html.parser')
info = soup.find_all("script",attrs={"type": "application/ld+json"})
print(info)
sleep(randint(2,10))

您将titles定义为该页面上的所有<script type="application/ld+json">标记。然后,您在4到19的范围内循环,询问titles[i].text等信息:由于该页面上只有3个这样的脚本标记,因此您收到了此错误。根据您的最终目标,您可能需要查看Dev工具-网络选项卡,并可能找到一个返回您要查找的数据的JSON端点。

最新更新