鱼C论坛

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

[已解决]希望指点优化代码

[复制链接]
发表于 2020-4-4 15:22:31 | 显示全部楼层 |阅读模式

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

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

x
import requests
import re
import os
import time

down_path = './azhu'
if not os.path.exists(down_path):
    os.makedirs(down_path)

def getonepage(url):
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}
    response = requests.get(url,headers=headers)
    if response.status_code == 200:
        return response.text
    return None

def fenxi(html):
    zhengze = re.compile('img src="(.*?)"',re.S)
    pic_url = re.findall(zhengze,html)
    pic_url_rea = pic_url[3]
    picgit = requests.get(pic_url_rea)
    print(pic_url_rea)
    nameurl = re.compile('_.*')
    picname = re.findall(nameurl,pic_url_rea)
    print(picname)
    with open(f'./azhu/{picname}.jpg','wb') as f:
        f.write(picgit.content)
        f.close()
        print(f'已完成{picname}的下载')

def main():
    urls = ['https://www.umtuba.com/siwameitui/56995_1.html']
    for i in range(1,68):
        urls.append(f'https://www.umtuba.com/siwameitui/56995_{i}.html')
        # print(urls)
    for url in urls:
        html = getonepage(url)
        time.sleep(1)
        fenxi(html)
    print('图片下载已全部完成!')
main()

以上是所有代码,我觉得和我照着书敲的很多地方不同(虽然大部分基本也都是照着敲),而且代码好像很繁杂,希望大佬给点优化意见
最佳答案
2020-4-4 15:40:47
已经很工整了,用正则就是这样,要代码简单用bs4或者lxml
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-4 15:40:47 | 显示全部楼层    本楼为最佳答案   
已经很工整了,用正则就是这样,要代码简单用bs4或者lxml
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 15:57:02 | 显示全部楼层
想判断网页状态码是不是200,可以这样
def getonepage(url):
    try:
        r = requests.get(url, headers=headers, timeout = 30)
        r.raise_for_status()#如果网页状态码不是200,则返回异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "异常"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 23:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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