程序媛python

pyspider爬虫的基本使用

2018-08-23  本文已影响16人  喵鸢

由于工作需要在一周内学习了pyspider的使用:
1.安装过程坑之多,小坑多一点,我用的是python2.x因为我3.x没安装成功一个库

我安装的时候用pip python2.x的坑少一点3.x的相关库安装lxml wheel32位 64位的选择;Path的填写都是需要注意的东西;具体安装过程不赘述了;有很多大神写好了步骤,推荐:静觅博客

2.pyspider是在一个网页里,所以敲代码时候是不会有函数提示的哦哦!
3.phantomJS还没有成功尝试,因为我的js很渣 抓包时候不会看js代码(持续学习中)

1.启动pyspider

2.使用

创建项目

制定一个小需求

代码

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on 2018-08-02 16:51:06
# Project: text

from pyspider.libs.base_handler import *

url = 'https://reeoo.com/page/'

class Handler(BaseHandler):
    crawl_config = {
         'itag':'2324'#首次run执行不需要写;重复run需要填写
    }

    @every(minutes=24 * 60)
    def on_start(self):
        # i = 1
        for i in range(1,168):
            pageNum = str(i)
            urlStr = url + pageNum
            print (urlStr)
            self.crawl(urlStr , callback=self.index_page, validate_cert=False)
         
        
    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('div[class="thumb"]').items():
            detail_url = each('a').attr.href
            # print (detail_url)
            self.crawl(detail_url, callback=self.detail_page,validate_cert=False)

    @config(priority=2)
    def detail_page(self, response):
        # 1.获取设计标题
        header = response.doc('body > article > section > header')
        # print header
        title = header('h1').text()
        
        # 2.获取设计的标题组
        tags = []
        for each in header.items('a'):
            tags.append(each.text())
            # print (each,tags)
            
        # 3.获取设计的简介
        content = response.doc('div[id="post_content"]')
        description = content('blockquote > p').text()
        
        # 4.获取设计网址的超链接
        website_url = content('a').attr.href
            
        # 5.获取设计图片组的网址
        image_url_list = []
        for each in content.items('img[data-src]'):
            image_url_list.append(each.attr('data-src'))
        
        
        
        return {
            "title": title,
            "tags": tags,
            "description": description,
            "website_url": website_url,
            "image_url_list": image_url_list,
        }


调试和结果展示

上一篇 下一篇

猜你喜欢

热点阅读