qq_43178462 2023-01-08 21:31 采纳率: 37.5%
浏览 183
已结题

python爬数据代码

本人想在指定网站页面使用python脚本爬数据,网站http://mmt.favor2.info/satellites/1383(网站可手动更换,但是页面是一样的格式),爬取内容为网站页面表哥内最后的T。

img

页面内所有红色标记都需要爬下来。

  • 写回答

8条回答 默认 最新

  • 素影·流年 2023-01-08 21:44
    关注

    我看看,稍等 参数可以自己替换
    采纳

    import requests
    import re
    import wget
    import os
    import threading
    
    headers= {
        "User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; wbx 1.0.0; wbxapp 1.0.0; Zoom 3.6.0)"
    }
    
    
    def Download(url,savedir):
        print('%s 正在下载 将保存至 %s\n' % (url.strip(),savedir),end = '')
        wget.download(url,out = savedir)
        print('%s 已下载完毕 已保存至 %s\n' % (url.strip(),savedir),end = '')
        
    def LoadPage(url,savedir):
        global headers
        response = requests.get(url,headers = headers)
        text = response.text.encode(response.encoding).decode(response.apparent_encoding)
        result = re.findall('<a href=\"/satellites/track/(.*)/download\" title=\"Downoad track\">T</a>',text)
        print('%s 中的下载地址已获取(共%d项)' % (url,len(result)))
        threads = []
        for sid in result:
            thd = threading.Thread(target = Download,args = ('http://mmt.favor2.info/satellites/track/%s/download\n' % (sid),os.path.join(savedir,'track_%s.txt' % (sid)),))
            thd.start()
            threads.append(thd)
        while len(threads) != 0:
            threads[0].join()
            threads.pop(0)
            
    
    LoadPage('http://mmt.favor2.info/satellites/1383?page=3','./Data')
    

    img


    时间原因,只下载了三个,效果如上

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月11日
  • 已采纳回答 1月11日
  • 创建了问题 1月8日

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条