使用post的方法或缺http://www.ccgp.gov.cn/cr/list中八个页面的数据保存到列表中,要求每个页面访问间隔五秒
时间: 2023-08-14 22:07:50 浏览: 87
实现上述要求,可以使用 Python 中的 requests 和 time 库。具体步骤如下:
1. 导入需要的库
```python
import requests
import time
```
2. 构造 POST 请求的参数
```python
params = {
'currentPage': 1,
'pageSize': 10,
'creditType': '1'
}
```
其中,`currentPage` 表示当前页码,`pageSize` 表示每页显示的记录数,`creditType` 表示信用类型,这里设置为 1 表示失信行为名单。
3. 构造请求头
```python
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
```
为了避免被服务器识别为爬虫,需要设置一个浏览器的 User-Agent。
4. 循环访问八个页面
```python
data_list = []
for i in range(1, 9):
params['currentPage'] = i
url = 'http://www.ccgp.gov.cn/cr/list'
response = requests.post(url, headers=headers, data=params)
data_list.append(response.json())
time.sleep(5)
```
其中,`range(1, 9)` 表示访问八个页面,`response.json()` 表示将响应内容解析为 JSON 格式,`time.sleep(5)` 表示每次请求间隔五秒。
5. 处理数据
由于每个页面返回的数据都是一个 JSON 对象,包含了多条记录,可以将这些记录合并到一个列表中。
```python
records = []
for data in data_list:
records += data['result']
```
最终,`records` 列表中包含了所有的失信记录。
完整代码如下:
```python
import requests
import time
params = {
'currentPage': 1,
'pageSize': 10,
'creditType': '1'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
data_list = []
for i in range(1, 9):
params['currentPage'] = i
url = 'http://www.ccgp.gov.cn/cr/list'
response = requests.post(url, headers=headers, data=params)
data_list.append(response.json())
time.sleep(5)
records = []
for data in data_list:
records += data['result']
print(records)
```
阅读全文