資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

 找回密碼
 注冊成為正式會員
查看: 3758|回復: 10
打印 上一主題 下一主題

python實現(xiàn)自動采集VIP課程帖子中的百度網(wǎng)盤鏈接

[復制鏈接]

6

主題

230

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
44
積分
234
貢獻
0
在線時間
22 小時
注冊時間
2020-4-10
最后登錄
2023-2-6

終身VIP會員

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-5-5 13:48:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 請我喝茶 于 2020-5-5 14:15 編輯

# -*- coding: utf-8 -*-

# Author: 桑葚ICE
# Email: 152516cc@gmail.com
# Blog: iicey.github.io
# JueJin: juejin.im/user/5c64dce8e51d45013c40742c
import re
import time

import requests
from scrapy import Selector


class Spider:

    def __init__(self, un="", pwd="", cookie=""):
        self.un = un
        self.pwd = pwd
        self.cookies = {}
        self.headers = {"cookie": cookie}
        self.bd_url_info = {}

    def enter(self):
        params = {
            "mod": "logging",
            "action": "login",
            "loginsubmit": "yes",
            "infloat": "yes",
            "lssubmit": "yes",
            "inajax": "1"
        }
        data = {
            "fastloginfield": "username",
            "username": self.un,
            "password": self.pwd,
            "quickforward": "yes",
            "handlekey": "ls",
        }
        response = requests.post(
            'http://rigasin.com/member.php',
            headers=self.headers,
            params=params,
            data=data
        )
        self.cookies = requests.utils.dict_from_cookiejar(response.cookies)

    def fid_to_tid(self, fid, page=1, tid_s=None):
        """
        :param fid:
        :param page:
        :return:
        """
        params = (
            ('mod', 'forumdisplay'),
            ('fid', fid),
            ('page', page),
            ('t', '5104641'),
        )

        response = requests.get(
            'http://rigasin.com/forum.php',
            headers=self.headers,
            # cookies=self.cookies,
            params=params
        )
        ret = Selector(response)
        tid_l = ret.xpath('//*[@id="threadlisttableid"]/tbody[contains(@id,"normalthread")]/@id').extract()
        if not tid_s:
            tid_s = set()
        old_count = len(tid_s)
        for i in tid_l:
            tid_s.add(i.replace("normalthread_", ""))
        new_count = len(tid_s)
        if new_count != old_count:
            page += 1
            return self.fid_to_tid(fid, page=page, tid_s=tid_s)
        else:
            return tid_s

    def get_content(self, fid, tid):
        response = requests.get(
            f"http://rigasin.com/forum.php?mod=viewthread&tid={tid}&extra=page%3D1",
            headers=self.headers
        )
        if "如果您要查看本帖隱藏內(nèi)容請" in response.text:
            self.post_content(fid, tid)
            time.sleep(60)
            return self.get_content(fid, tid)
        else:
            # time.sleep(1)
            result = Selector(response)
            url_info = result.xpath('//div[@class="showhide"]//text()').extract()
            try:
                bd_url = [i for i in url_info if "https://" in i][0]
                bd_pwd = re.findall(r"\w\w\w\w", [i for i in url_info if "提取碼" in i][0])[0]

                print(bd_url, bd_pwd)
                self.bd_url_info[bd_url] = bd_pwd
            except IndexError as e:
                print(e, response.url)

    def post_content(self, fid, tid):
        """
        :param fid:
        :param tid:
        :return:
        """
        params = (
            ('mod', 'post'),
            ('infloat', 'yes'),
            ('action', 'reply'),
            ('fid', fid),
            ('extra', ''),
            ('tid', tid),
            ('replysubmit', 'yes'),
            ('inajax', '1'),
        )

        data = {
            'formhash': '78484d61',
            'handlekey': 'reply',
            'noticeauthor': '',
            'noticetrimstr': '',
            'noticeauthormsg': '',
            'usesig': '0',
            'subject': '',
            'message': '666'
        }

        response = requests.post('http://rigasin.com/forum.php',
                                 headers=self.headers, params=params, data=data)

    def main(self):
        pass


if __name__ == '__main__':
    cookie = "瀏覽器F12打開取出cookie放到這里"
    spider = Spider(cookie=cookie)
    for fid in [158]:
        for tid in spider.fid_to_tid(fid):
            spider.get_content(fid, tid)
    print(spider.bd_url_info)
回復

使用道具 舉報

4

主題

71

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
25
積分
75
貢獻
0
在線時間
12 小時
注冊時間
2020-5-3
最后登錄
2021-7-24

終身VIP會員

沙發(fā)
發(fā)表于 2020-5-5 23:46:27 | 只看該作者
沒回復的可以取到嗎?
回復 支持 反對

使用道具 舉報

6

主題

230

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
44
積分
234
貢獻
0
在線時間
22 小時
注冊時間
2020-4-10
最后登錄
2023-2-6

終身VIP會員

板凳
 樓主| 發(fā)表于 2020-5-6 11:08:05 | 只看該作者
ou315001655 發(fā)表于 2020-5-5 23:46
沒回復的可以取到嗎?

不能,不回復就想拿內(nèi)容可以學滲透然后自己搞
回復 支持 反對

使用道具 舉報

6

主題

230

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
44
積分
234
貢獻
0
在線時間
22 小時
注冊時間
2020-4-10
最后登錄
2023-2-6

終身VIP會員

地板
 樓主| 發(fā)表于 2020-5-6 11:09:26 | 只看該作者
ou315001655 發(fā)表于 2020-5-5 23:46
沒回復的可以取到嗎?

這個你睡前或者看視頻的時候掛起來讓它跑起來就OK,不用管他
回復 支持 反對

使用道具 舉報

4

主題

2337

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
29
積分
2359
貢獻
0
在線時間
257 小時
注冊時間
2020-8-3
最后登錄
2021-10-16

終身VIP會員

5#
發(fā)表于 2020-8-9 00:25:00 | 只看該作者
就是300秒內(nèi)不能重復發(fā)言比較惡心,所以想都回復一下,以后搜就可以直接看了。保存那么多到百度云也沒用
回復 支持 反對

使用道具 舉報

2

主題

285

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
54
積分
287
貢獻
0
在線時間
91 小時
注冊時間
2020-5-18
最后登錄
2024-12-19

終身VIP會員

6#
發(fā)表于 2020-8-27 08:10:08 | 只看該作者
回復

使用道具 舉報

1

主題

47

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
53
積分
50
貢獻
0
在線時間
24 小時
注冊時間
2019-6-19
最后登錄
2022-11-26

終身VIP會員

7#
發(fā)表于 2020-9-22 20:40:48 | 只看該作者
666
回復

使用道具 舉報

3

主題

552

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
22
積分
554
貢獻
0
在線時間
62 小時
注冊時間
2020-11-12
最后登錄
2024-11-10

終身VIP會員

8#
發(fā)表于 2020-11-24 18:20:36 | 只看該作者
謝謝分享
回復

使用道具 舉報

2

主題

42

帖子

0

精華

資源共享吧豪華貴族SVIP

Rank: 9Rank: 9Rank: 9

資源幣
9
積分
45
貢獻
0
在線時間
24 小時
注冊時間
2021-12-15
最后登錄
2023-10-23

終身VIP會員

9#
發(fā)表于 2022-2-1 00:03:48 | 只看該作者
666
回復

使用道具 舉報

0

主題

50

帖子

0

精華

注冊會員

Rank: 2

資源幣
5
積分
50
貢獻
0
在線時間
0 小時
注冊時間
2022-7-11
最后登錄
2022-7-11
10#
發(fā)表于 2022-7-11 02:10:24 | 只看該作者
感謝樓主的無私分享!
回復 支持 反對

使用道具 舉報

 點擊右側(cè)快捷回復  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2024-12-22 09:45 , Processed in 0.071170 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表