一、开发工具

Python版本:3.6.4

相关模块:

DecryptLogin模块;

argparse模块;

以及一些python自带的模块。

二、环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

三、原理简介

原理其实挺简单的,首先,我们利用之前开源的DecryptLogin库来实现一下微博的模拟登录操作:

'''模拟登录京东'''
@staticmethod
def login():
    lg = login.Login()
    infos\_return, session = lg.jingdong()
    return session

然后写几行简单的代码来保存一下登录后的会话,省得每次运行程序都要先模拟登录京东:

if os.path.isfile('session.pkl'):
    print('\[INFO\]: 检测到已有会话文件session.pkl, 将直接导入该文件...')
    self.session = pickle.load(open('session.pkl', 'rb'))
    self.session.headers.update({'Referer': ''})
else:
    self.session = JDGoodsCrawler.login()
    f = open('session.pkl', 'wb')
    pickle.dump(self.session, f)
    f.close()

接着去京东抓一波包,一样的套路,有种屡试不爽的感觉:

图片

看看请求这个接口需要提交的参数:

图片

我们可以简单分析一下每个参数的含义:

area: 不用管,可以看作一个固定值
enc: 指定编码, 可以看作固定值"utf-8"
keyword: 搜索的关键词
adType: 不用管,可以看作一个固定值
page: 当前的页码
ad\_ids: 不用管,可以看作一个固定值
xtest: 不用管,可以看作一个固定值
\_: 时间戳

也就是说我们需要提交的params的内容大概是这样子的:

params = {
            'area': '15',
            'enc': 'utf-8',
            'keyword': goods\_name,
            'adType': '7',
            'page': str(page\_count),
            'ad\_ids': '291:19',
            'xtest': 'new\_search',
            '\_': str(int(time.time()\*1000))
        }

构造好需要提交的params之后,只需要利用登录后的session去请求我们抓包得到的接口:

response = self.session.get(search\_url, params=params)

然后从返回的数据里解析并提取我们需要的数据就可以啦:

response\_json = response.json()
all\_items = response\_json.get('291', \[\])
for item in all\_items:
    goods\_infos\_dict.update({len(goods\_infos\_dict)+1: 
                                {
                                    'image\_url': item.get('image\_url', ''),
                                    'price': item.get('pc\_price', ''),
                                    'shop\_name': item.get('shop\_link', {}).get('shop\_name', ''),
                                    'num\_comments': item.get('comment\_num', ''),
                                    'link\_url': item.get('link\_url', ''),
                                    'color': item.get('color', ''),
                                    'title': item.get('ad\_title', ''),
                                    'self\_run': item.get('self\_run', ''),
                                    'good\_rate': item.get('good\_rate', '')
                                }
                            })

注:爬虫部分代码仅提供思路,网站在不断更新。

四、数据可视化

老规矩,可视化一波我们爬取到的数据呗。以我们爬取到的无人机商品数据为例。首先,我们来看看京东里卖无人机的自营店和非自营店比例吧:

图片

咦,竟然是非自营店占多。我一直以为京东基本都是自营店,虽然我基本不用京东。真是个天大的误解T_T。

接着,我们再来看看京东自己给的商品排名前10的那几家店的商品评论数量呗:

图片

对比一下评论最多的店铺:

图片

看来评论数量和京东给的商品排名并没有直接联系T_T,竟然没有一家店是重复的。

再来看看无人机相关商品的价格分布呗:

图片


关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,希望提供给想学习 Python 的小伙伴们一点帮助!

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐