吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3316|回复: 9
收起左侧

[Python 转载] Python 爬取开源大赛的附件

[复制链接]
E飞翔 发表于 2018-12-1 16:43
本帖最后由 E飞翔 于 2018-12-1 16:58 编辑

精易开源大赛的源码还是有很多比较好的东西的。

用Python写一下:





[Python] 纯文本查看 复制代码
import re
from requests import post,get
import pprint

class JYKY:
    def __init__(self,num):
        """ 初始化  num  为页码 """
        self.urls = 'https://bbs.125.la/forum.php?mod=forumdisplay&fid=98&typeid=585&typeid=585&filter=typeid&t=5459534&page=%d'%num

    def getArticle(self):
        """ 获取帖子链接和标题 """
        header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
        res = get(self.urls,headers=header).text

        Expression = r'<a href="\.(.*?html)" class="s xst">(.*?)</a>' # 优化后的表达式
        re_data = re.findall(Expression,res)

        # pprint.pprint(re_data)          # 格式化输出帖子链接和标题

        if re_data:
            for i in re_data:
                self.getAnnex(i)

    def getAnnex(self,listApp):
        """ 获取附件 """
        # print(listApp)
        url = 'https://bbs.125.la' + listApp[0]
        title = listApp[1]
        header = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
            'Cookie':'',                   # 这里添加你的  cookie
            'Host':'bbs.125.la',
            'Referer':self.urls
        }
        res = get(url,headers = header).text
        # print(res)
        re_data = re.findall(r'id=le3600_down:show&aid(.*?)"',res)
        # pprint.pprint(re_data)
        if re_data:
            for i in re_data:
                res_url = 'https://bbs.125.la/plugin.php?id=le3600_down:show&aid%s&infloat=yes&handlekey=le3600_down&inajax=1&ajaxtarget=fwin_content_le3600_down'%i
                res_i = get(res_url,headers=header).text
                rei_url = re.findall(r'a href="(http://att\.125\.la/plugin\.php\?id=le3600_down.*?)"',res_i)
                rei_name = re.findall(r'<td class="css_dashed" colspan="3">(.*?\.)(rar|7z|e|zip)</td>',res_i)#(.+?\.[rar|7z|e|zip])
                # print(res_i)
                # print(len(rei_url),len(rei_name))
                if rei_name :
                    self.saveAnnex(rei_name[0],rei_url[0])
                    print(rei_url[0])



    def saveAnnex(self,Annex_title,Annex_url):
        Annex = get(Annex_url)
        with open(r'C:\Users\Administrator\Desktop\MP3\%s' % Annex_title, 'wb') as f:
            f.write(Annex.content)



if __name__ == '__main__':
    p = JYKY(1) # 这里初始化一个页码
    p.getArticle()


    
    


免费评分

参与人数 4吾爱币 +3 热心值 +3 收起 理由
Ishmeal_zwj + 1 + 1 谢谢@Thanks!
影子代言人 + 1 + 1 谢谢@Thanks!
admh + 1 谢谢@Thanks!
过故人庄 + 1 谢谢@Thanks!

查看全部评分

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

淡笑红尘1234 发表于 2018-12-1 17:06
真是大神啊
xiaohan1 发表于 2018-12-1 18:17 来自手机
wisoft 发表于 2018-12-1 19:50
yudi1235 发表于 2018-12-1 21:39
谢谢分享,一直有学,可感觉总没有进步
ynlove1 发表于 2018-12-2 07:50
长见识了感谢
gdx366 发表于 2018-12-4 15:44
感谢分享,学习了
卧龙001 发表于 2018-12-4 22:01
厉害啊,正在学习爬虫
liujiajia 发表于 2018-12-6 10:57
这个运行结果是什么?
小黑LLB 发表于 2019-2-23 22:27
代码写的真好看 楼主辛苦了! 感谢楼主分享 点赞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 04:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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