用python制作表情包,领略scrapy框架的魅力!

先上图:

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

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图片

猜你喜欢

转载自www.cnblogs.com/xinshiye/p/9037844.html