首页 > 解决方案 > 使用 python 抓取 url

问题描述

我想为 url 抓取所有银行的 ATM 和分行地址,但我不能这样做。

URL="https://www.btpn.com/en/tentang-kami/contact-us/lokasi-cabang"

无论我的位置选择如何,如何为所有位置提取它们?

标签: pythonweb-scrapingbeautifulsoup

解决方案


只需提出一个简单的请求并获取包含所有位置的 JSON,然后只需按type_code = ATM. 你完成了。

import requests


headers = {
    "Referer": "https://www.btpn.com/en/tentang-kami/contact-us/lokasi-cabang",
    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
}
data = requests.get("https://www.btpn.com/generate-branch", headers=headers).json()

for item in data["lists"]["btpn"]:
    if item["type_code"] == "ATM":
        print(item["address"])

这打印:

Jl. Margonda Raya No. 77 Depok
Jl. Indrapura No.1 EFG Surabaya
Jl. KH.Z.Mustofa 289 Tasikmalaya
Jl. Jend.Achmad Yani 618 Bandung
Jl. Anthony Rhebok No 41, Kel. Honipopu, Kec. Sirimau, Kota Ambon, Provinsi Maluku
Jl. Raya Bojonegoro RT 001/002 Babat,  Kel. Banaran,  Kec. Babat, Kota Lamongan, Provinsi Jawa Timur
Jl. Wolter Mongonsidi No.15 Bandar Lampung
Jl. Wolter Mongonsidi No.15 Bandar Lampung
Jl. Trunojoyo No. 1, Bangkalan
Jl. Tentara Pelajar No. 31 C - Banjar
...

推荐阅读