Pyspider--第二个案例

本文介绍了一个使用Python和pyspider库从京东网站爬取男装品牌信息及图片链接的尝试。作者详细展示了如何获取品牌名称、图片链接,并尝试下载图片,尽管最终未能成功下载图片,但成功保存了链接。

爬取京东的男装--”牌子”货信息

爬取如上的几十条信息

每个图片都有一个对应的品牌信息

看后台代码:

图片信息和名称在这里

 

 

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2019-01-23 10:25:59
# Project: JD

from pyspider.libs.base_handler import *
import os

class Handler(BaseHandler):
    crawl_config = {
    }
    def __init__(self):
        self.base_dir ="D:\\JD"

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('https://search.jd.com/Search?keyword=%E7%94%B7%E8%A3%85&enc=utf-8&wq=%E7%94%B7%E8%A3%85&pvid=97c29de04971462aac5bc8d7a6f3b829',callback=self.index_page,validate_cert=False)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):        
        for ide in response.doc(".sl-v-logos > ul li a").items():
            mk_name=ide.text().encode("gbk")
            mk_text=ide.attr("href")+'\n' 
            mk_dir=self.base_dir+"\\"+mk_name
            img_name=mk_dir+"\\"+"img"
            if not os.path.exists(mk_dir):
                os.mkdir(mk_dir)
            if not os.path.exists(img_name):
                os.mkdir(img_name) 
        text_name=open(mk_dir+"\\"+mk_name+".txt","w")
        text_name.write(mk_text)
        text_name.flush()
        text_name.close()
               
        for img in response.doc(".sl-v-logos > ul li a img").items():
            
            print img.attr("src")+'\n'
            img_url=img.attr("src")
            self.crawl(img_url,callback=self.img1_page,validate_cert=False,save={"img_url":img_url})        
        

        
    @config(age=10 * 24 * 60 * 60)
    def img1_page(self, response):
        img1_page=response.save['img_url']
        print(img1_page)
        img_data=response.content         
        img_file=open(img1_page)
        img_file.write(img_data)
        img_file.flush()
        img_file.close()
                
        
        
        
        
        
        

最后知道图片的链接,但下载不了图片,也上网搜了好多案例,但pyspider例子太少了,涉及到图片的都是别的开发工具和别的包----最后只知道了图片的链接,并没有下载下来。保存链接啥的都没有问题,可以通过gbk格式保存到本地的txt文件里...可以说这是一个失败的例子吧。但还是传上来做个纪念。以后就会好的!

有兴趣赐教的大神也可评论解惑,万分感谢,小生先有礼谢过>_<

加油!

pyspider错误"subprocess-exited-with-error"表示在运行pyspider时,遇到一个或多个子进程出现错误,导致整个命令无法完成。这种错误通常与操作系统或Python版本相关。为了解决这个问题,你可以采取以下几个步骤: 1. 确认你的电脑上是否安装了所需的依赖库。你可以使用pip install命令来安装所需的库。确保你已经安装了pyspider的所有依赖库,并且它们的版本是兼容的。 2. 确保你的操作系统是最新的,并且已经安装了最新版本的Python。有些依赖库只能在特定版本的Python上运行。你可以通过运行python --version命令来查看你当前的Python版本。如果你的Python版本过旧,你可能需要更新到最新的版本。 3. 如果以上步骤都无法解决问题,你可以尝试重新安装Python。你可以使用python -m ensurepip命令来重新安装Python。这将确保你有最新的pip和setuptools库。 如果你使用的是Windows操作系统,还可以尝试下载并安装与你的Python版本对应的pycurl库。你可以在https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl网站上找到Python版本对应的pycurl文件。下载后,你可以使用pip install命令来安装pycurl库。 总结起来,要解决pyspider错误"subprocess-exited-with-error",你可以尝试安装所需的依赖库、更新Python版本、重新安装Python或下载并安装适用于你的Python版本的pycurl库。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值