首页 编程教程正文

python scrapy 爬取某表情网站表情图【源码+GIF表情包下载】

piaodoo 编程教程 2020-02-22 22:14:12 1202 0 python教程

本文来源吾爱破解论坛

本帖最后由 null119 于 2018-2-12 20:49 编辑

先上图:

4.png (257.27 KB, 下载次数: 4)

下载附件  保存到相册

2018-2-12 20:19 上传



源代码【python才学几天,代码丑陋,还请各位多多包涵】:

[Python] 纯文本查看 复制代码
import scrapy
import os,sys
import requests
import re
class scrapyone(scrapy.Spider):
        name = "stackone"
        start_urls = ["http://qq.yh31.com/ql/bd/"]
        def parse(self,response):
                hrf=response.xpath('//*[@id="main_bblm"]/div[2]/dl/dd/li')
                for li in hrf:
                        item={}
                        href=li.xpath('a/@href').extract()
                        hreftext=li.xpath('a/text()').extract()
                        full_url = 'http://qq.yh31.com'+ ''.join(list(href))
                        hreftext=''.join(list(hreftext))
                        #文件夹名称
                        if hreftext=='>更多>':
                                continue
                        path = 'C:\GIF'
                        if not os.path.exists(path):
                                os.makedirs(path)
                        item['dirname']=hreftext
                        yield scrapy.Request(url=full_url,meta={'key':item},callback = self.parse1)

        def parse1(self,response):
                ite={}
                full_url=[]                
                url1 = response.xpath('//*[@id="pe100_page_infolist"]/a[2]/@href').extract()
                url2 = response.xpath('//*[@id="pe100_page_infolist"]/a[2]/@href').re('\d+')
                url1 = ''.join(url1)
                url1 = url1.split('_')
                url2 = ''.join(url2)
                ite['dirn']=response.meta['key']['dirname']
                for i in range(1,int(url2)+1):
                        full_url='http://qq.yh31.com'+url1[0]+'_'+str(i)+'.html'
                        #print(full_url)
                        yield scrapy.Request(url=full_url,meta={'key1':ite},callback = self.parse2)

        def parse2(self,response):
                p1=response.meta['key1']['dirn']
                resp = response.xpath('//*[@id="main_bblm"]/div[1]/li/dt/a') 
                path = 'C:\GIF\\'+''.join(p1)
                if not os.path.exists(path):
                        os.makedirs(path)
                for lst in resp:
                        alt = lst.xpath('img/@alt').extract()
                        src = lst.xpath('img/@src').extract()
                        src = 'http://qq.yh31.com'+ ''.join(list(src))
                        alt = ''.join(list(alt))
                        html=requests.get(src)
                        with open(path+'\\'+alt+'.gif', 'wb') as file:
                           file.write(html.content)



脚本执行方式:cmd-->切换到脚本所在目录-->scrapy runspider xxxx.py

执行后会自动根据GIF分类在c:\gif文件夹下建立相应文件夹存储gif图片


QQ截图20180212202435.png (331.76 KB, 下载次数: 5)

下载附件  保存到相册

2018-2-12 20:24 上传




QQ截图20180212202521.png (21.68 KB, 下载次数: 2)

下载附件  保存到相册

2018-2-12 20:25 上传



不想麻烦的就直接到百度网盘下载吧,我已经传上去了

QQ截图20180212202807.png (71.17 KB, 下载次数: 2)

下载附件  保存到相册

2018-2-12 20:28 上传



链接:https://pan.baidu.com/s/1c3YYTfq 密码:1t8h

版权声明:

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

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

搜索