鱼C论坛

 找回密码
 立即注册
查看: 1147|回复: 2

函数优化

[复制链接]
发表于 2020-3-8 17:30:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有一个问题请教各位.从开始学python就一直不习惯试用函数.  可能是因为不够直接感性,感觉效率差不多.

所以近期打算评估一下用函数和不用函数在时间上有什么差异. 但是想改的时候,突然发现,不会了,

所以,请诸位大神根据我的代码,改成函数样式

(纯小白,获取某PT网站的资源,练习试用.cookie已更改)

代码如下:
# coding:utf-8
import os
import re
import time
import requests
from bs4 import BeautifulSoup
n=0
headers={
'cookie': '__cfduid=ddd8dd90defddd80d1b44a39e73fbeb371f1582866913; c_secure_uid=MzgzNDM%3D; c_secure_pass=be6febb679b71a73e7246d7e68cca7a1; c_secure_ssl=bm9wZQ%3D%3D; c_secure_tracker_ssl=eWVhaA%3D%3D; c_secure_login=bm9wZQ%3D%3D',
'referer': 'https://pt.btschool.club/index.php',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 Edg/80.0.361.66'
}
for i in range(170):
    url='https://pt.btschool.club/torrents.php?inclbookmarked=0&incldead=1&spstate=0&page={}'.format(i)
    res=requests.get(url,headers=headers)
    res.encoding="utf-8"
    urls=re.findall('</tr></table></td><td class="rowfollow"><b><a href="(.*?)&cmtpage',res.text,re.S)
    for url in urls:
        print("正在计数:",n)
        url=url.replace("amp;","")
        url="https://pt.btschool.club/"+url
        r = requests.get(url, headers=headers)
        r.encoding = "utf-8"
        html = r.text
        soup = BeautifulSoup(html, "html.parser")
        titleA = soup.find("a", class_="index").get_text()
        titleB = soup.find("td", class_="rowfollow", valign='top').get_text()
        size = re.findall("<b><b>大小:</b></b>(.*?)   <b>类型:</b>", html, re.S)[0]
        leixing = re.findall("<b>类型:</b> (.*?)   <b>", html, re.S)[0]
        downurl = soup.find_all("td", class_="rowfollow", valign="top", align="left")[3].find("a").get("href")
        data = soup.find_all("div", id="kdescr")[0].get_text()
        data = data.replace(
            "免责声明 本站所有资源均为网友上传,仅供测试宽带所用,严禁用于商业用途,否则产生的一切后果将由您自己承担!本站将不对本站的资源负任何法律责任!如支持作品,请购买正版! 引用 您的保种是PT站长久发展的重要保证!只要片子在硬盘上不删,请自觉做到开机即做种!自觉保种可使资源的有效期无限延长、下载速度达到极限,同时也可以为你赚得上传流量和魔力值,方便你我他~快乐下载,分享至美!感谢您对比特校园PT的支持~",
            "")
        print(n, '即将记录__%s__这个文件' % titleA[11:21])
        with open("PT_btshcool.txt", "a", encoding="utf-8") as f:
            try:
                f.write(str(n))
                f.write("■")
                f.write(leixing)
                f.write("■")
                f.write(titleA)
                f.write("■")
                f.write(titleB)
                f.write("■")
                f.write(size)
                f.write("■")
                f.write(downurl)
                f.write("\n")
                n += 1
                with open("%s.txt" % titleA[11:], "w", encoding="utf-8") as f:
                    f.write(data)
                time.sleep(2)
            except:
                pass
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-8 17:35:34 | 显示全部楼层
本帖最后由 一个账号 于 2020-3-8 17:37 编辑

# coding:utf-8
import os
import re
import time
import requests
from bs4 import BeautifulSoup

def func():
    n=0
    headers={
    'cookie': '__cfduid=ddd8dd90defddd80d1b44a39e73fbeb371f1582866913; c_secure_uid=MzgzNDM%3D; c_secure_pass=be6febb679b71a73e7246d7e68cca7a1; c_secure_ssl=bm9wZQ%3D%3D; c_secure_tracker_ssl=eWVhaA%3D%3D; c_secure_login=bm9wZQ%3D%3D',
    'referer': 'https://pt.btschool.club/index.php',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 Edg/80.0.361.66'
    }
    for i in range(170):
        url='https://pt.btschool.club/torrents.php?inclbookmarked=0&incldead=1&spstate=0&page={}'.format(i)
        res=requests.get(url,headers=headers)
        res.encoding="utf-8"
        urls=re.findall('</tr></table></td><td class="rowfollow"><b><a href="(.*?)&cmtpage',res.text,re.S)
        for url in urls:
            print("正在计数:",n)
            url=url.replace("amp;","")
            url="https://pt.btschool.club/"+url
            r = requests.get(url, headers=headers)
            r.encoding = "utf-8"
            html = r.text
            soup = BeautifulSoup(html, "html.parser")
            titleA = soup.find("a", class_="index").get_text()
            titleB = soup.find("td", class_="rowfollow", valign='top').get_text()
            size = re.findall("<b><b>大小:</b></b>(.*?)   <b>类型:</b>", html, re.S)[0]
            leixing = re.findall("<b>类型:</b> (.*?)   <b>", html, re.S)[0]
            downurl = soup.find_all("td", class_="rowfollow", valign="top", align="left")[3].find("a").get("href")
            data = soup.find_all("div", id="kdescr")[0].get_text()
            data = data.replace(
                "免责声明 本站所有资源均为网友上传,仅供测试宽带所用,严禁用于商业用途,否则产生的一切后果将由您自己承担!本站将不对本站的资源负任何法律责任!如支持作品,请购买正版! 引用 您的保种是PT站长久发展的重要保证!只要片子在硬盘上不删,请自觉做到开机即做种!自觉保种可使资源的有效期无限延长、下载速度达到极限,同时也可以为你赚得上传流量和魔力值,方便你我他~快乐下载,分享至美!感谢您对比特校园PT的支持~",
                "")
            print(n, '即将记录__%s__这个文件' % titleA[11:21])
            with open("PT_btshcool.txt", "a", encoding="utf-8") as f:
                try:
                    f.write(str(n))
                    f.write("■")
                    f.write(leixing)
                    f.write("■")
                    f.write(titleA)
                    f.write("■")
                    f.write(titleB)
                    f.write("■")
                    f.write(size)
                    f.write("■")
                    f.write(downurl)
                    f.write("\n")
                    n += 1
                    with open("%s.txt" % titleA[11:], "w", encoding="utf-8") as f:
                        f.write(data)
                    time.sleep(2)
                except:
                    pass

func()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 17:37:41 | 显示全部楼层

回帖奖励 +1 鱼币

直接包起来就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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