【问题标题】:How to create a Loop in python web scraping for listing如何在 python 网页抓取中创建循环以进行列表
【发布时间】:2020-09-07 23:18:03
【问题描述】:

我正在抓取一个动态网站,并试图找到一种方法来每次更改 start 的值,然后执行整个任务并收集数据并希望附加到 数据列表

start = 0
start = 500
start = 1000
start = 1500

如何每次更改 api_request_urlstrat 的值?

api_request_url = f"https://www.ellsworth.com/api/catalogSearch/search?sEcho=1&iDisplayStart={start}&iDisplayLength={n_items}&DefaultCatalogNode=Adhesives&_=1497895052601"

这是代码

import requests
from bs4 import BeautifulSoup
data_list = []

start = 0
n_items = 500
api_request_url = f"https://www.ellsworth.com/api/catalogSearch/search?sEcho=1&iDisplayStart={start}&iDisplayLength={n_items}&DefaultCatalogNode=Adhesives&_=1497895052601"
data = requests.get(api_request_url).json()
bas_url    = 'https://www.ellsworth.com'
print(f"Found: {data['iTotalRecords']} items.")
for item in data["aaData"]:
    data_list.append(base_url+item[4])

【问题讨论】:

标签: python loops for-loop pagination


【解决方案1】:

API 返回的东西称为批处理 - 10 条数据,从 start 开始。

您可以只创建一个for 循环并每次更改api_request_url 的值:

n_items = 500

for start in range(0, n_items, 10):
    api_request_url = f"https://www.ellsworth.com/api/catalogSearch/search?sEcho=1&iDisplayStart={start}&iDisplayLength={n_items}&DefaultCatalogNode=Adhesives&_=1497895052601"
    # Do your stuff

【讨论】:

    【解决方案2】:

    您可以将开始选项添加到列表并迭代列表:

    lststart = [0,500,1000,1500]
    
    for start in lststart:
        n_items = 500
        api_request_url = f"https://www.ellsworth.com/api/catalogSearch/search?sEcho=1&iDisplayStart={start}&iDisplayLength={n_items}&DefaultCatalogNode=Adhesives&_=1497895052601"
        .................
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2020-08-25
      • 1970-01-01
      • 2021-07-27
      • 2015-02-09
      • 2015-04-23
      • 2021-06-06
      • 2021-09-05
      • 1970-01-01
      相关资源
      最近更新 更多