在Python爬虫中,爬取同一级参数(即URL查询字符串中的参数)的核心步骤如下:1. 识别参数同一级参数通常出现在URL的问号(?)之后,以键值对形式存在,多个参数用&连接。例如:https://example.com?page=2&sort=asc参数1:page=2参数2:sort=asc2. 构造URL直接拼接参数到URL中,或通过字典动态生成。示例代码:base_url = "https://example.com"params = {"page": "2", "sort": "asc"}# 方法1:手动拼接(不推荐,易出错)url = f"{base_url}?page={params['page']}&sort={params['sort']}"# 方法2:使用requests自动处理(推荐)import requestsresponse = requests.get(base_url, params=params) # 自动编码参数3. 发送请求并解析参数使用requests发送请求后,可通过以下方式提取参数:方法1:从响应URL中解析from urllib.parse import parse_qsresponse = requests.get("https://example.com?page=2&sort=asc")parsed_params = parse_qs(response.url.split('?')[1]) # 提取问号后的部分print(parsed_params["page"]) # 输出: ['2']方法2:直接使用请求时的参数若参数是通过requests.get(params=...)传递的,原始参数会保存在response.request.url中:response = requests.get("https://example.com", params={"page": "2", "sort": "asc"})print(response.request.url) # 输出完整URL,可用parse_qs解析4. 完整示例import requestsfrom urllib.parse import parse_qs# 目标URL(含参数)url = "https://example.com?page=2&sort=asc"# 发送请求response = requests.get(url)# 解析参数query_string = response.url.split('?')[1] # 获取问号后的查询字符串params = parse_qs(query_string)# 输出结果print("Page参数:", params.get("page", [])) # ['2']print("Sort参数:", params.get("sort", [])) # ['asc']关键注意事项参数编码:若参数含特殊字符(如空格、中文),requests会自动编码,手动拼接需用urllib.parse.quote处理。多值参数:parse_qs返回的是列表(如page=2&page=3会得到{'page': ['2', '3']})。动态参数:若需遍历多页,可循环修改params字典:for page in range(1, 4): response = requests.get("https://example.com", params={"page": page}) print(f"第{page}页数据:", response.json())通过以上步骤,可高效爬取并处理同一级URL参数。如需进一步学习,可参考Python标准库文档中的urllib.parse模块和requests库的高级用法。



































