You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python网络爬虫如何获取页面全部搜索结果?

嘿,作为Python爬虫新手碰到这种「URL不动但内容偷偷加载」的情况太常见啦!我来帮你一步步搞定抓取全部150条结果的问题~

第一步:揪出真实的数据接口

这个页面选「全部」时没刷新URL却能加载更多内容,说明它是通过AJAX异步请求获取数据的,咱们得找到这个背后的接口:

  • 打开目标页面,按F12调出浏览器开发者工具,切换到「Network」标签页
  • 把页面上的显示选项改成「全部」,这时Network里会弹出新的请求,优先看「XHR」或「Fetch」类型的
  • 点开这个请求,查看它的「Request URL」(就是真实接口地址)、请求方法(一般是POST)以及携带的参数(比如可能有showAll=1或者rows=150这类控制条数的字段)
第二步:用Python发送请求获取数据

首先确保你装了requests库,没装的话先跑:

pip install requests

然后写代码模拟请求,示例如下(记得替换成你找到的真实接口和参数):

import requests

# 替换成你在Network里找到的真实接口URL
api_url = "这里填接口地址"
# 替换成请求里的参数,比如PageID、控制显示全部的字段
payload = {
    "PageID": "33",
    "showAll": "1",
    # 其他你看到的必要参数都加上
}
# 模拟浏览器请求头,避免被反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

# 发送请求
response = requests.post(api_url, data=payload, headers=headers)
# 检查请求是否成功
if response.status_code == 200:
    print("请求成功!开始解析数据~")
else:
    print(f"请求翻车啦,状态码:{response.status_code}")
第三步:解析数据提取链接

接下来要看接口返回的是HTML还是JSON:

如果返回的是HTML

装个beautifulsoup4来解析:

pip install beautifulsoup4

然后写解析代码:

from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text, "html.parser")
# 找到所有结果里的链接,这里要根据页面实际的HTML结构调整,比如找特定class的<a>标签
result_links = soup.find_all("a", href=True)
for link in result_links:
    # 把相对链接拼成完整URL
    full_link = "https://www.nalpcanada.com/" + link["href"]
    print(full_link)

如果返回的是JSON

直接解析JSON数据就行:

data = response.json()
# 假设链接在results数组的每个item里的url字段,根据实际结构调整
for item in data["results"]:
    full_link = "https://www.nalpcanada.com/" + item["url"]
    print(full_link)
小提醒
  • 记得加请求头,尤其是User-Agent,不然容易被网站当成机器人拦截
  • 如果遇到403错误,可以把浏览器里的Cookie复制到headers里试试
  • 别疯狂请求,加个time.sleep(1)之类的延时,给服务器留口气~

内容的提问来源于stack exchange,提问作者Fitzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:53:10