热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

requests获取百度推广信息

2019年的第一篇博客,恩,好久没写过博客了,恩,忘了,哈哈,实在是太懒了今天写一个爬取百度推广

2019年的第一篇博客,恩,好久没写过博客了,恩,忘了,哈哈,实在是太懒了

今天写一个爬取百度推广数据的爬虫,当然我写的肯定不是那么的完美,但是能用,大哭

 

注意:有的时候,get或post方法获取数据是会报ssl等错误,网站要验证啥的,没搞懂,网上搜索,都是设置 verify=False,我也懒得去详细分析,你们要是有兴趣可以去了解一下,然后这么设置了,在GET或者post是会有warning提示,编写代码:

# 禁用ssl发出的警告
requests.packages.urllib3.disable_warnings()

下面代码:

def main():
  #开启一个session对话

main_session = requests.session()
return main_session

def get_cost_info(main_session, endtime, flag1, flag2):
  #获取省或市在日期或者月份下的消费信息

if flag1 == 'province':
splitDimension = "provinceName"
else:
splitDimension = "provinceCityName"
if flag2 == 'month':
unitOfTime = 3
else:
unitOfTime = 5
headers = {
'Accept':'application/json',
'Accept-Encoding':'gzip, deflate',
'Accept-Language':'zh-CN,zh;q=0.8',
'Connection':'keep-alive',
'Content-Length':'763',
'Content-Type':'application/x-www-form-urlencoded',
'COOKIE':setting.COOKIE,
'DNT':'1',
'Host':'fengchao.baidu.com',
'Origin':'https://fengchao.baidu.com',
'Referer':'https://fengchao.baidu.com/fc/report/dashboard/user/%s/account'%setting.userid,
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36',
'X-DevTools-Emulate-Network-Conditions-Client-Id':'87F3C66D-3166-46F6-8B46-141057354EBC'
}
params = {
"userId":setting.userid,
"ids":[setting.userid],
"idType":2,
"splitDimension":splitDimension,
"limit":[0,1000],
"sortRules":[],
"levelOfDetails":211,
"startDate":"2019-01-01",
"endDate":endtime,
"predicateConditions":[],
"unitOfTime":unitOfTime,
"columns":["userId","date","accountName","impression","click","cost","cpc","ctr","conversion","phoneConversion","bridgeConversion"]
}
formdata = {
'reqid': setting.reqid,
'eventId': setting.eventId,
'userid': setting.userid,
'token': setting.token,
'path': 'mars/GET/AccountReportDataService/getAccountDataCenterReportData',
'params': json.dumps(params)
}
  #url是去F12---network获取的

url_1 = 'https://fengchao.baidu.com/hairuo/request.ajax?path=mars/GET/AccountReportDataService/getAccountDataCenterReportData&reqid=%s' % formdata['reqid']
cont_1 = main_session.post(url_1, headers=headers, data=formdata, verify=False)
datas = cont_1.json()
cont_list_1 = datas['data']['ACCOUNT']['rows']
for i in cont_list_1:
cont_list_2 = i['subRows']
cont_list = []
for j in cont_list_2:
if flag2 == 'month':
time_1 = j['date'][0:7]
time_list1 = time_1.split('-')
date = '%s年%s月份' % (time_list1[0], str(int(time_list1[1])))
else:
date = j['date']
zhanghu = j['accountName']
province, city = '', ''
if flag1 == 'province':
province = j['provinceName']
else:
city_list = j['provinceCityName'].split('-')
province, city = city_list[0], city_list[1]
zhanxian = str(j['impression'])
dianji = str(j['click'])
xiaofei = str(j['cost'])
pinjunjiage = str('%.2f' % (j['cpc']))
dianjilv = str('{:.2%}'.format(j['ctr']))
wangyezhuanhua = str(j['conversion'])
dianhuazhuanhua = str(j['phoneConversion'])
shangqiaozhuanhua = str(j['bridgeConversion'])
cont_list.append([date, zhanghu, province, zhanxian, dianji, xiaofei, pinjunjiage, dianjilv, wangyezhuanhua, dianhuazhuanhua, shangqiaozhuanhua])

 经过测试,COOKIE一般能保持7天不过期,七天之后就要重新登录浏览器F12获取


转载于:https://www.cnblogs.com/wozuilang-mdzz/p/10736115.html


推荐阅读
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
author-avatar
Lora1201
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有