134.【爬虫】基于 mitmproxy 代理的爬虫环境搭建(一)

最近一个朋友在跟我讨论如何将某一个微信公众号上的历史文章列表连同文章链接地址采集下来,其实这就用到了爬虫技术。

爬虫技术难吗?不难,但我说这个不难的前提是拥有一些技术基础。关键的爬虫技术有很多可选的,比如selenium、scrapy、splash、fiddler 等等。我比较喜欢的一种爬虫技术栈基本也就涉及:开发语言、中间代理。自动化工具 selenium 现在都不喜欢用了,因为真要说如何伪装真人操作,不如直接在真实浏览器里通过 JavaScript 直接来。

你到底做啥的?为啥还会爬虫?我算是一名狂热的技术控吧,而且技术涉猎比较广,研究的技术比较多。爬虫这块,2019 年时独立负责采集 youtube 数据、香港新闻媒体网站数据、抖音数据,辅助采集过 facebook 社交网站、Instagram 图片分享网站。也算小有经验。

进入正题了。

一、pip 安装 mitmproxy

我们要使用 python 开发语言来处理网络请求数据,这里要用的是 mitmproxy 作为中间代理。至于代理是什么其实很好理解,代理相当于中间商,不管供应商(网站服务器)卖什么,最终顾客(浏览器客户端)最终买什么,中间商(代理)都能从中知道两方交换的商品信息。我们只要在网络数据传输过程中,有个代理,就能中途截获网络中传输的数据。

pip3 install mitmproxy

二、安装 mitmproxy 证书

代理软件安装好了还不行,还要支持 https 协议。现在网络传输用的绝大多数都是 https(http + ssl) 协议,其实也就是在 http 协议的基础上,加了一层 ssl 安全加密传输协议。我们的代理软件必须安装证书,才能解析 https 传输的数据。

mitmdump 

执行完这个命令,会在一个目录下生成 mitmproxy 证书文件。

mitmproxy 证书

双击这个文件,继续往下走,


步骤 1

步骤 2

步骤 3

步骤 3 这一步不需要输入密码,依然是直接下一步,


步骤 4(按箭头点选)

步骤 5

步骤 6(点击“是”)

步骤 7(完成)

三、编写代码

from mitmproxy import http


def response(flow: http.HTTPFlow):
    # 1. 过滤出微信相关的网络请求
    if flow.request.pretty_host == "mp.weixin.qq.com":
        # print("url -> ", flow.request.pretty_url)
        # print("path -> ", flow.request.path)
        # 2. 过滤出 【拾遗】这个公众号的文章列表 -- 特别注意:不同的实际爬取需求,使用不同的字符串片段过滤,这就看使用者的开发语言功底了
        if flow.request.path.startswith("/mp/homepage"):
            print("key url -> ", flow.request.pretty_url)
            print("我想要的数据:")
            article_list = flow.response.json()['appmsg_list']
            for article in article_list:
                print("文章标题:", article["title"])
                print("副标题:", article["digest"])
                print("作者名:", article["author"])
                print("文章链接:", article["link"])

命令行启动代理,并配置脚本

mitmdump -p 8080 test.py
命令行启动命令

电脑开启全局代理


电脑开启全局代理

注意:用完,记得把电脑全局代理再关掉,刚刚忘了关,结果浏览器打不开了,文章也发布不出去。

四、看看效果

结果展示

五、写在最后

北京已经进入冬天模式了,之前几天跑步感觉太冷了,今天下去跑步多穿了件衣服,结果跑出汗又脱了,结果停下来时没套上,便着凉了,这会咳嗽着在,还在灌着我这辈子喝过最苦的药——同仁堂感冒清热颗粒(无蔗糖)。
想起前阵子我们领导感冒,我还在那嘚瑟着说:“我是不会感冒的,我现在经常运动……”。真是,哈哈哈!说明体质确实是健康的基础,但也不是拿来放肆的。其实我们经常走户外的人心里很明白,基本上走户外出意外的都是强驴,一定要时刻谨记对自然保持敬畏,毕竟区区血肉之躯呀。天冷了,都记着穿好衣服。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容