d_list = [] # 爬取页数 total_pages = 10 # 每页爬取条数 items_per_page = 10 num = 0 all_data_list = [] for page in range(0, total_pages + 1): # 请求间隔时间 time.sleep(1) page_str = str(page) print("---", page_str) data = {"page": page_str, "page_size": items_per_page, "sort": 0, "energy": 0, "location_city": "成都", "extra": 1} print("第", page, "次请求", data) dic_json_ids = requests.post(url=url, data=json.dumps(data), headers=headers).json() print(url) print("第", page, "次请求结果", dic_json_ids) for dic in dic_json_ids.get("data", {}).get("list", []): id_list.append(dic["id"]) num = num + 1 print("第", page, "页 第", num, "条") for id in id_list: data = {'id': id} print("车辆id",id) url2 = url1 + str(id) print(url2) detail = requests.get(url=url2, data=data, headers=headers).json() # price = dic_json_ids.get("data", {}).get("guide_reserve_price") if "data" in detail and "phone" in detail["data"]: phone = detail["data"]["phone"] store_name = detail["data"]["store_name"] name = detail["data"]["user_name"] all_data_list.append((phone)) else: break # 数据持久化 with open("phone.txt", "w", encoding="utf-8") as file: for item in all_data_list: line = ''.join(str(e) for e in item) file.write(line + "\n") print('爬取完毕!共', len(all_data_list), '条数据')
时间: 2024-01-12 12:05:01 浏览: 111
这段代码看起来没有明显的语法错误。不过,有几个地方需要注意一下:
1. 在导入模块之前,请确保已经正确安装了所需的模块(如requests、time等)。
2. 请确保在使用requests库发送POST请求之前,已经正确定义了url和headers变量。
3. 在代码中,你使用了一个名为`id_list`的列表来存储车辆的id,但是在循环中却使用了一个名为`d_list`的空列表。你需要将`d_list`改为`id_list`,以确保代码正常运行。
4. 在循环中的数据持久化部分,你使用了一个名为`e`的变量来遍历`item`列表中的元素,但是在代码中并未定义`e`。你可以直接将`item`写入文件而无需使用额外的变量。
5. 考虑到数据文件的编码,建议在打开文件时指定编码为utf-8。
除了以上提到的细节以外,如果你想要更具体的帮助,请提供更多关于你遇到的具体问题或错误信息。
阅读全文