python小学生,找了段代码改了改,结果8134条数据只爬下来五千多条,求赐教
附上代码:
import requests
import pandas as pd
requests.packages.urllib3.disable_warnings()
# 该公司的id
company_id = '1999074'
# 该公司的人员信息有82页
for page in range(1,82):
# 构造data参数
url = 'https://exam.sac.net.cn/pages/registration/train-line-register!list.action'
data = {'filter_EQS_AOI_ID': company_id,
'filter_EQS_PTI_ID': 0,
'page.searchFileName': 'homepage',
'page.sqlKey': 'PAGE_FINISH_PUBLICITY',
'page.sqlCKey': 'SIZE_FINISH_PUBLICITY',
'_search': 'false',
'page.pageSize': 100,
'page.pageNo': page,
'page.orderBy': 'id',
'page.order': 'desc'}
# post方法访问某页
resp = requests.post(url, data=data, verify = False)
# 解析网页数据
df = pd.DataFrame(resp.json()['result'])
# 存储数据
df.to_csv('爬虫.csv', mode='a+')
dt = pd.read_csv('爬虫.csv')
# 存储到Excel
dt.to_excel('爬虫.xlsx', index = False)
你访问的这个接口就只有五千多条数据,您可以在返回的数据中看到,你可以把获取到的数据输出下resp.json():
totalCount': 5860, 'totalPages': 59
因此,如果要爬取更多数据,要考虑更换数据接口。望采纳!!!!!
这种可以这样写的,一次性全部请求下来,不用循环。这个数据就是只有5860
company_id = '1999074'
url = 'https://exam.sac.net.cn/pages/registration/train-line-register!list.action'
data = {'filter_EQS_AOI_ID': company_id,
'filter_EQS_PTI_ID': 0,
'page.searchFileName': 'homepage',
'page.sqlKey': 'PAGE_FINISH_PUBLICITY',
'page.sqlCKey': 'SIZE_FINISH_PUBLICITY',
'_search': 'false',
'page.pageSize': 10000,
'page.pageNo': 1,
'page.orderBy': 'id',
'page.order': 'desc'}
resp = requests.post(url, data=data, verify = False)
df = pd.DataFrame(resp.json()['result'])