求助一个优化代码的方法——爬取一个网站的资源下载链接

Question:

  • 执行代码感觉跑的速度非常慢

希望得到一些改进优化的建议:

Code :

import requests
import re

'''
第一页:https://www.5438.com.cn/list/11.html?page=1
第二页:https://www.5438.com.cn/list/11.html?page=2
'''

'''
获取分页链接
'''
def get_page_url():
    urls_list = []
    for i in range(25):
        url = 'https://www.5438.com.cn/list/11.html?page={}'.format(i+1)
        urls_list.append(url)
    return urls_list

'''
获取文章链接
'''
def from_airticle_get_download_url():
    aireticle_urls = []
    for x in get_page_url():
        #构造文章链接
        req = requests.get(x).text
        pat = '<a href="(.*?)" rel="bookmark" target="_blank">'
        lite_urls = re.findall(pat, req)
        for j in lite_urls:
            url = 'https://www.5438.com.cn{}'\
                .format(j)
            aireticle_urls.append(url)
    return aireticle_urls
'''
获取资源下载链接
'''
def get_download_urls():
    download_urls_list = []
    for j in from_airticle_get_download_url():
        req_download_urls = requests.get(j).text
        pat = 'download-popup btn_down" href="(.*?)"'
        a = re.findall(pat, req_download_urls)
        download_urls_list.append(a)

    print(download_urls_list)



get_download_urls()


Jason990420
最佳答案

为加速完成,使用多线程

情况最简单下的爬虫案例

1个月前 评论
讨论数量: 2
Jason990420

为加速完成,使用多线程

情况最简单下的爬虫案例

1个月前 评论

学习过使用threading模块创建多线程执行任务,但基础还是薄弱,如果可以的话,不知道能不能在原有的代码基础上添加上线程用作学习呢?感谢!

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!