首页 编程教程正文

【原创】pyhon爬取发表情包网站 单进程/多jin'c

piaodoo 编程教程 2020-02-22 22:15:07 1482 0 python教程

本文来源吾爱破解论坛

本帖最后由 QingYeMuRong 于 2020-2-10 12:12 编辑

在家闲着,爬爬表情包网站玩,本计划写个单进程的爬取,但是爬取速度有点慢,最后改成了多进程。以下附上单进程代码,多进程代码在附件里面,有需要自己拿取。希望大家在爬取的时候手下留情,下面是测试的图片。-- coding:utf8 --

    import requests
    import re
    from urllib.request import urlretrieve
    import os
    headers = {
                    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36'
    }
    def get_urls(n):
                    url = 'https://www.fabiaoqing.com/bqb/lists/type/hot/page/{}.html'.format(n)
                    response = requests.get(url,headers=headers)

                    html = response.text.encode('gbk','ignore').decode('gbk','ignore')
                    part1 = 'data-original="(.*?)" alt'
                    part2 = '" alt="(.*?)" style="'
                    img_urls = re.compile(part1).findall(html)
                    titles = re.compile(part2).findall(html)
                    # print(img_urls)
                    # print(titles)
                    urls = []
                    for i in range(0,len(titles)):
                                    url = img_urls[i]
                                    title = titles[i]
                                    urls.append((url,title))
                    print(urls)
                    return urls

    def download(data):
                    data = list(data)
                    url = data.copy()
                    print(data)

                    for k in range(len(data)):
                                    file = file = os.path.abspath(os.path.dirname(__file__))+'/Emoji/'
                                    if not os.path.exists(file):
                                                    os.makedirs(file)
                                                    print('--创建成功--')
                                    te = data[k][0][-4:]
                                    # print(te)
                                    title = data[k][0][-4:].split("'")
                                    title1 = data[k][1].replace(' ', '')
                                    title1 = title1.replace(' ', '')
                                    # print(title1)
                                    try:
                                                    path = os.path.abspath(os.path.dirname(__file__))+'/Emoji/'+ str(title1)+str(te)
                                                    print(path)
                                                    response = requests.get(url[k][0],headers=headers)
                                                    # with open(path,'wb',encoding='utf-8') as f:
                                                    #     f.write(response.content)
                                                    print(url[k][0])
                                                    urlretrieve(url[k][0],path)
                                                    print('下载成功')
                                    except Exception as err:
                                                    print(err)

    if __name__ == '__main__':
                    key = input('输入爬取页数:')
                    for n in range(1,eval(key)+1):
                                    urls = get_urls(n)
                                    download(urls)

Ashampoo_Snap_2020年2月10日_11h33m58s_002_.png (868.78 KB, 下载次数: 1)

下载附件  保存到相册

2020-2-10 11:50 上传

Ashampoo_Snap_2020年2月10日_11h33m58s_002_.png

Ashampoo_Snap_2020年2月10日_11h34m20s_003_.png (782.17 KB, 下载次数: 0)

下载附件  保存到相册

2020-2-10 11:50 上传

Ashampoo_Snap_2020年2月10日_11h34m20s_003_.png

Ashampoo_Snap_2020年2月10日_11h33m05s_001_.png (44.28 KB, 下载次数: 2)

下载附件  保存到相册

2020-2-10 11:50 上传

Ashampoo_Snap_2020年2月10日_11h33m05s_001_.png
嗨学网

fabiaoqing.zip

2020-2-10 12:03 上传

点击文件名下载附件

下载积分: 吾爱币 -1 CB

2.46 KB, 下载次数: 36, 下载积分: 吾爱币 -1 CB

源码 单进程/多进程

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7965.html

搜索