前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
项目目标
采集APP推广数据
受害者地址
https://www.cpajia.com/
环境
- Python3.6
- pycharm
- requests
- time
- csv
相关库用 pip install 安装即可
获取数据内容
cap之家数据是动态数据加载的~ 开发者工具可以找到相对应的数据接口
请求数据是POST
数据内容找到了,单页数据可以直接爬取,如果想要爬取多页数据,那就要分析接口数据url的变化
因为数据接口是post请求,所以一般情况都是data参数的变化,所以查看data参数的变化就可以了~
- 第一页接口数据data参数
两个接口都是一样的数据,但是data参数不一样,第二个就是感觉data参数就是对应的页数号,所以可以多看几页的data参数的变化
- 第二页接口数据data参数
- 第三页接口数据data参数
这一下就很清楚的看到data参数的变化了~Pagelndex是等差数列 刚好对应的页数
所以再翻页爬取的时候只要改变Pagelndex参数就可以了
爬虫代码
导入相关工具
import requests import time import csv
请求网页
url = 'https://www.cpajia.com/index.php?m=index&a=search' data = { 'PageIndex': '{}'.format(page) } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36' } response = requests.post(url=url, data=data, headers=headers)
解析网页数据
dit = {} for i in lis: dit['名称'] = i['title'] data_time = int(i['updatetime']) timeArray = time.localtime(data_time) otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray) dit['发布时间'] = otherStyleTime dit['单价/元'] = i['price'] dit['结算方式'] = i['balance'] dit['数据查看'] = i['dataview'] dit['电话'] = i['phone'] dit['微信'] = i['wxh'] dit['QQ'] = i['qq'] dit['产品要求'] = i['content']
保存数据
f = open('APP推广数据.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.DictWriter(f, fieldnames=['名称', '发布时间', '单价/元', '结算方式', '数据查看', '电话', '微信', 'QQ', '产品要求']) csv_writer.writeheader()
运行代码,效果如下图