吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5569|回复: 14
收起左侧

[Python 转载] 什么?爬虫还能帮助我找对象?

  [复制链接]
欧阳锋没有疯 发表于 2019-4-13 22:52
本帖最后由 欧阳锋没有疯 于 2019-4-13 23:25 编辑

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


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

kyb3.png

kyb1.png kyb2.png


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


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


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

关于抓包工具的使用,社区里大佬已经发过很多次了,请点:抓包工具,为所欲为?
安卓模拟器的使用,百度一大堆,这里主要讲下,安卓模拟器,安装后在设置里面,将网络设置成桥接模式,这样设置的目的就是要让安卓模拟器的数据经过fiddler抓包软件。
kyb4.png
查看自己的网络:ipconfig
clipboard.png
C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/f2bcd94d08504455bad9bf89dc94ad34/clipboard.png
对手机的设置:
clipboard2.png
C:/Users/lee/AppData/Local/YNote/data/1725824530@qq.com/e8735cefde314e32aaf5f828176cf884/clipboard.png
长按wiredSSID
clipboard3.png
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
设置代{过}{滤}理,安装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 clipboard6.png
启动代{过}{滤}理后,打开安卓模拟器,点进考研帮,找到对应的论坛,清理下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)就可以看到了。

免费评分

参与人数 4吾爱币 +7 热心值 +4 收起 理由
影舞 + 1 + 1 老哥果然有点子
wushaominkk + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
niebaohua + 1 + 1 用心讨论,共获提升!
CrazyNut + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 欧阳锋没有疯 发表于 2019-4-15 09:10
和风一号 发表于 2019-4-14 23:17
啊?考研帮还有这个板块?孤陋寡闻了。另外,祝楼主早日爬到对象嘻嘻

多谢捧场
mjjmjj2008 发表于 2019-4-13 23:07
Shervict 发表于 2019-4-13 23:09
 楼主| 欧阳锋没有疯 发表于 2019-4-13 23:10
什么鬼?认真编辑了两遍,为啥图片还显示我本地的地址??:@
砸七砸八 发表于 2019-4-13 23:14
所以楼主爬到对象了没
E式丶男孩 发表于 2019-4-13 23:25
都是考研的
 楼主| 欧阳锋没有疯 发表于 2019-4-13 23:27
唉,这个发帖太烦人了。你们能看到我的图片是我本地地址么?
 楼主| 欧阳锋没有疯 发表于 2019-4-13 23:27
砸七砸八 发表于 2019-4-13 23:14
所以楼主爬到对象了没

然而并。。。
头像被屏蔽
ilhuyi 发表于 2019-4-13 23:32
提示: 作者被禁止或删除 内容自动屏蔽
sealow 发表于 2019-4-14 07:29
不怕爬到骗子
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表