scrapy 单脚本执行 爬去jandan无聊图的gif文件

阅读: 评论:0

scrapy 单脚本执行 爬去jandan无聊图的gif文件

scrapy 单脚本执行 爬去jandan无聊图的gif文件

直接创建工程麻烦,直接用一个脚本文件,python spider.py那样更简单。

其实很简单,spider类派生还是跟生成的一样,只需要添加awler import CrawlerProcess

最后生成process对象,执行start即可


import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
awler import CrawlerProcess
from scrapy.utils.project import get_project_settings


class gifitem(scrapy.Item):
file_urls = scrapy.Field()


class Meizitu(scrapy.Spider):
name = "pic"
allowed_domains = ["jandan"]
start_urls = (
'/',
)


def is_gif_url(self, url):
ext = url[url.rfind("."):]
if "gif" in ext:
return True
else:
return False


def parse(self, response):
print "visit url---------->",response.url
a = response.selector.xpath('//div[@class="cp-pagenavi"]')

if len(a) > 0 and 0:#debug
b = a[0]
urls =  b.xpath('.//a/@href').extract()
for url in urls:
yield scrapy.Request(url, self.parse)


gifs = response.selector.xpath('//a/@href').extract()
urls = []
for gif in gifs:
if 'gif' in gif:
if(self.is_gif_url(gif)):
urls.append(gif)
if len(gif) > 0:
gif_item = gifitem()
gif_item['file_urls'] = urls
yield gif_item
pass



setting = get_project_settings()
setting.set("ITEM_PIPELINES", {
'scrapy.pipelines.files.FilesPipeline':1
})
setting.set("FILES_STORE", "J:\pic_download")
process = CrawlerProcess(setting)
awl(Meizitu)
process.start()
这里需要注意的是,setting对象,可以完成一些setting的设置。比如设置Pipeline,一些属性等等,具体参考scrapy的文档。jandan有简单的放爬功能,改写user_agent功能即可,但是如果想爬去所有的gif,估计需要中间件的方式,继续学习。

本文发布于:2024-01-28 18:24:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064374629363.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:脚本   爬去   无聊   文件   scrapy
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23