扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
怎么在Python中使用scrapy框架下载文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联主营龙泉网站建设的网络公司,主营网站建设方案,成都app开发,龙泉h5微信小程序定制开发搭建,龙泉网站营销推广欢迎龙泉等地区企业咨询mat.py文件
# -*- coding: utf-8 -*- import scrapy from scrapy.linkextractor import LinkExtractor from weidashang.items import matplotlib class MatSpider(scrapy.Spider): name = "mat" allowed_domains = ["matplotlib.org"] start_urls = ['https://matplotlib.org/examples'] def parse(self, response): #抓取每个脚本文件的访问页面,拿到后下载 link = LinkExtractor(restrict_css='div.toctree-wrapper.compound li.toctree-l2') for link in link.extract_links(response): yield scrapy.Request(url=link.url,callback=self.example) def example(self,response): #进入每个脚本的页面,抓取源码文件按钮,并和base_url结合起来形成一个完整的url href = response.css('a.reference.external::attr(href)').extract_first() url = response.urljoin(href) example = matplotlib() example['file_urls'] = [url] return example
pipelines.py
class MyFilePlipeline(FilesPipeline): def file_path(self, request, response=None, info=None): path = urlparse(request.url).path return join(basename(dirname(path)),basename(path))
settings.py
ITEM_PIPELINES = { 'weidashang.pipelines.MyFilePlipeline': 1, } FILES_STORE = 'examples_src'
items.py
class matplotlib(Item): file_urls = Field() files = Field()
run.py
from scrapy.cmdline import execute execute(['scrapy', 'crawl', 'mat','-o','example.json'])
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联成都网站设计公司行业资讯频道,感谢您对创新互联成都网站设计公司的支持。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流