首页 编程教程正文

什么?爬虫还能帮助我找对象?

piaodoo 编程教程 2020-02-22 22:02:46 831 0 python教程

本文来源吾爱破解论坛

本帖最后由 欧阳锋没有疯 于 2019-4-13 23:25 编辑

项目地址:https://github.com/hfxjd9527/kaoyanbang
呐!标题党也不完全是有罪的。比如我,嘻嘻。

因为我超认真的在帮助单身狗(我也是嗨学网)。不信你看:

kyb3.png (105.92 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:54 上传



kyb1.png (204.17 KB, 下载次数: 0)

下载附件  保存到相册

2019-4-13 22:55 上传

kyb2.png (206.47 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:55 上传




清晰大图,就不发了,毕竟楼主也不是那种猥琐人不是嗨学网


好了,言归正传,本帖就是针对考研帮某个神秘板块的爬虫。
主要知识点:
fiddler抓包工具的使用安卓模拟器的使用分析接口


该接口最近一段时间想必不会换,如果不想要弄模拟器分析接口,直接复制代码也能运行。运行后MongoDB中就会保存大量单身男女的信息,等自己升职加薪以后......
嘻嘻,说不定还能成就一段姻缘。

关于抓包工具的使用,社区里大佬已经发过很多次了,请点:抓包工具,为所欲为?
安卓模拟器的使用,百度一大堆,这里主要讲下,安卓模拟器,安装后在设置里面,将网络设置成桥接模式,这样设置的目的就是要让安卓模拟器的数据经过fiddler抓包软件。

kyb4.png (25.39 KB, 下载次数: 0)

下载附件  保存到相册

2019-4-13 22:29 上传


查看自己的网络:ipconfig

clipboard.png (16.49 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:19 上传


C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/f2bcd94d08504455bad9bf89dc94ad34/clipboard.png
对手机的设置:

clipboard2.png (12.75 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:19 上传


C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/e8735cefde314e32aaf5f828176cf884/clipboard.png
长按wiredSSID

clipboard3.png (31.37 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:19 上传


C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/74384a7f3ad5433fa0cbc3beaaa4b5b2/clipboard.png
修改网络:
C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/4f87e1d09204468482de9815ca873b5a/clipboard.png

clipboard4.png (58.84 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:20 上传


设置代{过}{滤}理,安装SwitchyOmega插件,新建一个情景模式,代{过}{滤}理服务器填写本机,代{过}{滤}理端口填写在fiddler里设置的端口,然后点应用选项。
C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/59655216c4384933ae535495d6d01543/clipboard.png
点一下小圆圈,点fiddler就启动了这个代{过}{滤}理。C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/090d5492e9cb45849c5116f6227250e7/clipboard.png

clipboard5.png (55.84 KB, 下载次数: 1)

下载附件  保存到相册

2019-4-13 22:20 上传

clipboard6.png (21.81 KB, 下载次数: 0)

下载附件  保存到相册

2019-4-13 22:20 上传


启动代{过}{滤}理后,打开安卓模拟器,点进考研帮,找到对应的论坛,清理下fiddler,滑动论坛的帖子,就能看到抓包的结果。C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/c1cb87b2949b40ef8f126f627db6eb98/clipboard.png

C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/312c5a6e5cfe41ea8805d9dd5aa75dc9/clipboard.png
分析fiddler抓到的数据,可以很快找到数据接口,然后稍稍写下代码就可以将该板块的信息给抓下来了。

代码如下:
[Asm] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# [url=home.php?mod=space&uid=686208]@AuThor[/url]  : frank_lee
import requests
import json
import pymongo


class Kaoyanbang():
    def __init__(self):
        self.conn = pymongo.MongoClient(host="localhost", port=27017)
        self.db = self.conn['kaoyanbang']

    def handle_requests(self, url):
        headers = {
            "Host": "mapi.kyboye.com",
            "Connection": "Keep-Alive",
            "Accept-Encoding": "gzip",
            "KY-APPVER": "3.2.9",
            "KY-APPCHG": "ky_kaoyan",
            "KY-SPEID": "10081255",
            "KY-APPTYPE": "2",
            "KY-SCHID": "1000",
            "KY-APPVERS": "86",
            "KY-SYSVER": "5.1.1",
            "KY-YEAR": "2020",
            "KY-SYSDEV": "OPPO++OPPO+R11",
            "KY-TOKEN": "316061c6cdcff2c9e411b96791a86042",
            "KY-UUID": "f341f084e029c53543d3714555b2658c",
            "User-Agent": "KaoYanBang AipBot/1.0 (KaoYanClub-Android/3.2.9; android/5.1.1; OPPO++OPPO+R11)",

        }
        response = requests.get(url, headers=headers)
        return response

    def handle_index(self):
        for i in range(6):
            url = "https://mapi.kyboye.com/club/thread/list?fid=136&type=1&typeid=0&skip=" + \
                str(26 + i * 20) + "&psize=20"
            response = self.handle_requests(url)
            response_dict = json.loads(response.text)
            for dataline in response_dict['res']['list']:
                friends_info = {}
                friends_info['uid'] = dataline['uid']
                friends_info['uname'] = dataline['uname']
                friends_info['title'] = dataline['title']
                friends_info['icon'] = dataline['icon']
                friends_info['content'] = dataline['content']
                friends_info['pics'] = dataline['pics']
                self.save_to_mongo(friends_info)
                print(friends_info)

    def save_to_mongo(self, result):
        if self.db['friends'].insert(result):
            print("保存成功")


if __name__ == '__main__':
    k = Kaoyanbang()
    k.handle_index()

C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/01740816876d43008acf983109852ea7/clipboard.png

这是比较简单的抓取,后来我想能不能换下ip地址,毕竟这样直来直去的抓,如果有反爬机制,很容易被封,于是我看到了这个(https://github.com/Python3WebSpider/ProxyPool)。后来安装了大佬的ip代{过}{滤}理池后,
发现他的代{过}{滤}理也是通过抓取普通代{过}{滤}理网站的代{过}{滤}理然后自己封装一下,于是我自己也弄了个简易版ip池(https://github.com/hfxjd9527/ip_proxy_pool),这样自己在爬虫的时候就可以使用自己抓取的ip了。
美滋滋。
因为经常听到多线程,多进程,自己实现较少,然后复习了一下多进程,搞了一下多进程抓取。如果真的感兴趣,可以参考我的项目代码:通过多种方式爬取考研帮-玫瑰初相遇板块(https://github.com/hfxjd9527/kaoyanbang)
也可在论坛回复帖子。


以上,都不重要,重要的是如果你正单身,那么考研帮这个版块的名字叫做“玫瑰初相遇”,本想弄个gif演示,奈何发帖限制图片大小,所以点(https://github.com/hfxjd9527/kaoyanbang)就可以看到了。

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7412.html

搜索