美文网首页大数据 爬虫Python AI Sql
多线程爬取表情包,斗图再也难不倒我了

多线程爬取表情包,斗图再也难不倒我了

作者: 山禾家的猫 | 来源:发表于2019-01-04 14:11 被阅读1次

    前言

    过元旦的这段时间,小编在群里疯狂的抢红包。过程中群里的表情包满天飞,于是小编便去瞄了一眼自己收藏的表情包。

    那个数目真是少的可怜啊~

    这不是明摆着不把小编放在眼里么?

    于是小编自己动手自己爬取了各种表情包,斗图再也难不倒小编了

    哈哈~(猪叫声)

    学习Python过程中会遇到很多问题,可以到我们的 python学习交流群【七 三 五,九 三 四,八 四 一】,基础,进阶。从企业招聘人才需求 到怎么学习python,和学习什么内容都有免费系统分享。希望可以帮助你快速了解Python,学习python​

    代码

    首先快速的导入我们需要的模块,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块

    import asyncio

    import aiohttp

    from lxml import etree

    import os

    编写主要的入口方法

    headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}

    async def get_face(url):

        print("正在操作{}".format(url))

        async with aiohttp.ClientSession() as s:

            async with s.get(url,headers=headers,timeout=5) as res:

                if res.status==200:

                    html = await res.text()

                    html_format = etree.HTML(html)

                    hrefs = html_format.xpath("//a[@class='list-group-item random_list']")

                    for link in hrefs:

                        url = link.get("href")

                        title = link.xpath("div[@class='random_title']/text()")[0]  # 获取文件头部

                        path = './biaoqings/{}'.format(title.strip())  # 硬编码了,你要先在项目根目录创建一个biaoqings的文件夹

                        if not os.path.exists(path):

                            os.mkdir(path)

                        else:

                            pass

                        async with s.get(url, headers=headers, timeout=3) as res:

                            if res.status == 200:

                                new_html = await res.text()

                                new_html_format = etree.HTML(new_html)

                                imgs = new_html_format.xpath("//div[@class='artile_des']")

                                for img in imgs:

                                    try:

                                        img = img.xpath("table//img")[0]

                                        img_down_url = img.get("src")

                                        img_title = img.get("alt")

                                    except Exception as e:

                                        print(e)

                                    async with s.get(img_down_url, timeout=3) as res:

                                        img_data = await res.read()

                                        try:

                                            with open("{}/{}.{}".format(path,img_title.replace('\r\n',""),img_down_url.split('.')[-1]),"wb+") as file:

                                                file.write(img_data)

                                        except Exception as e:

                                            print(e)

                            else:

                                pass

                else:

                    print("网页访问失败")

    就这样,海量表情包快到碗里来。

    需要斗图的小伙伴自己动手试试吧~

    相关文章

      网友评论

        本文标题:多线程爬取表情包,斗图再也难不倒我了

        本文链接:https://www.haomeiwen.com/subject/drehrqtx.html