寻找网站的URL查询参数
我在尝试使用这个 search.py 的代码来抓取一个网站,使用的是 url 和 search_url。这个代码能生成json格式的结果——这是怎么通过开发者工具实现的呢?
我看到首先发送了一个请求,使用的是 referer_link
headers = {'Referer': referer_link, 'X-Requested-With': 'XMLHttpRequest'}
然后是一个暂停,接着是带有查询键/值的搜索网址
html = client.request(url, headers=headers)
我想在火狐的开发者工具中复现这个过程,但似乎找不到其他可用的查询键/值参数。请问我该如何获取这些参数呢?
我有一个具体的问题——我尝试了一个修改过的搜索查询
https://rlsbb.cc/Home/GetPost?phrase=&pindex=1
这个查询返回了网页上当前的帖子,格式是json,但我不知道怎么限制查询,只获取在特定时间段内的 电视节目,比如说:类别 - 电视节目 在 日期 - 2024-03-01 和 日期 - 2024-03-02 之间?
我知道这个网站没有任何API文档,至少我没有找到。如果能做到这一点,那就可以避免抓取html,因为json数据在python中更容易处理。感谢你的关注和时间。
OZooHA1 个回答
0
好的,我查看了你的 JSON 结果(https://rlsbb.cc/Home/GetPost?phrase=&pindex=1),发现你所有的对象都有 "tbl_wp_category":null
这个分类,所以如果你是想引用其他的键,请告诉我。
至于日期的问题,你可以在你的对象数组 "results"
上执行一个 for 循环,只输出那些 "post_date"
在 2024-03-02 之前和 2024-03-01 之后的对象。
像这样:
import json
from datetime import datetime
# your JSON data
data = {}
final_result=[]
# Convert JSON string to dictionary
results = data["results"]
# Loop through each result
for result in results:
# Get the post_date as a string
post_date_str = result["post_date"]
# Convert post_date string to datetime object
post_date = datetime.strptime(post_date_str, "%Y-%m-%d %H:%M:%S")
# Define the start and end date ranges
start_date = datetime(2024, 3, 1)
end_date = datetime(2024, 3, 2)
# Check if post_date is between start_date and end_date
if start_date <= post_date <= end_date:
final_result.append(result)