为什么下面代码一直爬取第一页的内容,我要批量爬取前20页,它输出了20次第一页,这怎么解决?


url_list = ['http://www.shixi.com/search/index?key=大数据&page={}'.format(i) for i in range(1,2)]

#print(url_list)
 
r = pd.DataFrame(columns=['岗位名称','公司名称','工作地点',"学历要求",'薪资情况','发布时间'])

for url in url_list:
 
    r0 = getCIL(url)
 
    r = pd.concat([r,r0])
 
    time.sleep(3)

r.to_csv('big.csv',encoding='utf_8_sig')

print("——爬取完毕——")

你确定range不应该写成range(1,21)么

测验了一下,数据爬取部分应该是没问题的,因为你构造url没问题,出错部分可能在于你写进csv的操作中是覆盖写入,而不是追加写入,导致每获取新的数据就把前一页数据覆盖了,只剩一页数据。

import time
import requests

headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}

url_list = ['http://www.shixi.com/search/index?key=%E5%A4%A7%E6%95%B0%E6%8D%AE&page={}'.format(i) for i in range(1,10)]

for i in url_list:
    print(i)
    res=requests.get(i,headers=headers)
    print(res.text)
    time.sleep(2)