Scrapinghub执行spider抓取并显示图片
序
- 抓取图片并显示在item里:

下面来正式进入本文的主题,抓取链家成交房产的信息并显示房子图片:
1. 创建一个scrapy project:
scrapy startproject lianjia_shub
这时会在当前文件夹下创建如下文件夹:
│ scrapy.cfg │ └─lianjia_shub │ items.py │ pipelines.py │ settings.py │ __init__.py │ └─spiders __init__.py
2. 定义item:
import scrapy class LianjiaShubItem(scrapy.Item): id = Field() title = Field() price = Field() addr = Field() link = Field() # 这里需要注意image这个字段 # image字段用来存储抓取到的<img>,这样就可以在ScrapingHub的Item Browser里查看图片了 # 而且这个名字必须是image,不然是不会显示图片的 image = Field()
3. 创建spider:
cmd里运行以下命令:
scrapy genspider lianjia http://bj.lianjia.com/chengjiao
定义spider:
# -*- coding: utf-8 -*- import scrapy from scrapy.spiders.init import InitSpider from lianjia_shub.items import LianjiaShubItem class LianjiaSpider(InitSpider): name = "lianjia" allowed_domains = ["http://bj.lianjia.com/chengjiao/"] start_urls = [] def init_request(self): return scrapy.Request('http://bj.lianjia.com/chengjiao/pg1/', callback=self.parse_detail_links) def parse_detail_links(self, response): house_lis = response.css('.clinch-list li') for house_li in house_lis: link = house_li.css('.info-panel h2 a::attr("href")').extract_first().encode('utf-8') self.start_urls.append(link) return self.initialized() def parse(self, response): house = LianjiaShubItem() house['link'] = response.url house['id'] = response.url.split('/')[-1].split('.')[0] image_url = response.css('.pic-panel img::attr(src)').extract_first() # image是一个list。在Scrapinghub中显示的时候会把image里所有的图片显示出来。 house['image'] = [image_url, image_url] house['title'] = response.css('.title-box h1::text').extract_first() house['addr'] = response.css('.info-item01 a::text').extract_first() house['price'] = response.css('.love-money::text').extract_first() return house
4. 下面我们就需要到Scrapinghub(http://scrapinghub.com/platform/)上注册一个账户。
5. 安装Scrapinghub客户端命令Shub:
pip install shub
6. 在Scrapinghub上创建一个project,并找到对应的api key:
api key: 点击账户 -> Account Settings -> API Key
7. 使用api key和project id登录shub:
shub login
手动输入api key之后会创建一个scrapinghub的配置文件scrapinghub.yml:
projects: default: lianjia_shub
8. 把spider部署到Scrapinghub:
shub deploy <projectid>
9. 在Scrapinghub上运行spider:
Scrapinghub上的job对应于我们定义的spider:
https://dash.scrapinghub.com/p/<projectid>/spider/lianjia/
在弹出的对话框中选择Spider的优先级后运行。(如果不想等太长时间的话可以设置成 Highest):
10. 执行结束后可以点击items查看抓取到的信息:
What's Next:
1. 根据需要更改spider的配置:
Spiders -> Settings -> Project Settings
2. 设置定时抓取:
Periodic Jobs -> Add periodic job
Scrapinghub执行spider抓取并显示图片的更多相关文章
- 使用wget工具抓取网页和图片 成功尝试
使用wget工具抓取网页和图片 发表于1年前(2014-12-17 11:29) 阅读(2471) | 评论(14) 85人收藏此文章, 我要收藏 赞7 wget 网页抓取 图片抓取 目录[-] ...
- 使用wget工具抓取网页和图片 及 相关工具几个
想保存一些网页,最后找到这 wget 的 shell脚本,虽然不是太理想,亲测可用呢. 使用wget工具抓取网页和图片 来源 https://my.oschina.net/freestyletim ...
- Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取
https://course.tianmaying.com/node 这个系列的文章看起来很不错,值得学习一下. /Users/baidu/Documents/Data/Interview/Web-S ...
- python学习-抓取知乎图片
#!/bin/usr/env python3 __author__ = 'nxz' """ 抓取知乎图片webdriver Chromedriver驱动需要安装,并指定d ...
- PHP批量抓取远程网页图片并存到本地实现方法和源码
做为一个仿站工作者,当遇到网站有版权时甚至加密的时候,WEBZIP也熄火,怎么扣取网页上的图片和背景图片呢.有时候,可能会想到用火狐,这款浏览器好像一个强大的BUG,文章有版权,屏蔽右键,火狐丝毫也不 ...
- 【Python爬虫程序】抓取MM131美女图片,并将这些图片下载到本地指定文件夹。
一.项目名称 抓取MM131美女写真图片,并将这些图片下载到本地指定文件夹. 共有6种类型的美女图片: 性感美女 清纯美眉 美女校花 性感车模 旗袍美女 明星写真 抓取后的效果图如下,每个图集是一个独 ...
- 抓取Bing每日图片作为网站首页背景
把Bing搜索的背景图片设置为自己网站的背景,实现背景及资讯的每日更新 效果图如下: 理一下思路,首先我们要抓取Bing的每日图片及最新资讯,然后保存图片及信息到本地,最后显示图片及资讯到网站首页. ...
- Python Spider 抓取猫眼电影TOP100
""" 抓取猫眼电影TOP100 """ import re import time import requests from bs4 im ...
- Python Spider 抓取今日头条街拍美图
""" 抓取今日头条街拍美图 """ import os import time import requests from hashlib ...
随机推荐
- C++ 使用cl命令编辑时发生的问题收录
1.cl不是内部或这外部命令,也不是可运行的程序或批处理文件. 这个问题的出现的原因是因为系统找不到cl命令处理程序,无法识别,解决办法: 首先在C盘查找cl.exe,可能会查到多个,先选择第一个,将 ...
- PHP Warning: phpinfo(): It is not safe to rely on the system's timezone setting
错误描述: PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *re ...
- js给div动态添加控件,然后给这个控件动态添加事件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- 关于NGINX变量的一些测试结果
作为NGINX变量,不像正规语言那么正式. 但处理自定义和内部变量时,这些操作,也是少不了的. geo $dollar { default "$"; } server { list ...
- POJ 2986 A Triangle and a Circle
题意:给定一个三角形,以及一个圆的圆心坐标和半径,求圆和三角形的相交面积. 思路: 用三角剖分,三角形上每个线段都变成这个线段与圆心的三角形,然后算出每个三角形与圆的相交面积,然后根据有向面积的正负累 ...
- POJ 3709 K-Anonymous Sequence (单调队列优化)
题意:给定一个不下降数列,一个K,将数列分成若干段,每段的数字个数不小于K,每段的代价是这段内每个数字减去这段中最小数字之和.求一种分法使得总代价最小? 思路:F[i]表示到i的最小代价.f[i]=m ...
- Base64 加密之中文乱码
ase64编码将二进制数据按照每三个字节转换成四个字节可读字符,编码后的字符长度大约为136.1%.字符范围为 A-Z a-z 0-9 \ +.但编码后的字符串不太适合使用URL传输,中文加密 ...
- [转]ReactJS入门教程
Refference From:http://www.cocoachina.com/webapp/20150721/12692.html 现在最热门的前端框架有AngularJS.React.Boot ...
- JS获取按下的键盘字符
<html> <head> KeyPress Test!<hr> <script language="javascript"> fu ...
- poj 3498 March of the Penguins(最大流+拆点)
题目大意:在南极生活着一些企鹅,这些企鹅站在一些冰块上,现在要让这些企鹅都跳到同一个冰块上.但是企鹅有最大的跳跃距离,每只企鹅从冰块上跳走时会给冰块造成损害,因此企鹅跳离每个冰块都有次数限制.找出企鹅 ...