python scrapy 爬取bing的背景图片

最近看了下python,就想着获取下bing的背景图片,每天定时爬取,保存到本地,可以做背景图片用。 也在网上看了一些其他的例子。就自己动手写了一个小的爬图片的python脚本。

scrapy安装

安装是参照官网http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html 安装完成,本人的系统是ubuntu,所以按照ubuntu系统来安装的,建立一个scrapy项目。 实现步骤: 1.是写的根据url获取到response body内容来解析出来的图片地址,正则写的不好(个人感觉)。 2.获取图片的流保存到本地文件目录

# -*- coding: utf-8 -*-
import scrapy as sc
import os
import re
import cookielib
import urllib2


def get_file(url):
    try:
        cj = cookielib.LWPCookieJar()
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
        urllib2.install_opener(opener)
        req = urllib2.Request(url)
        operate = opener.open(req)
        data = operate.read()
        return data
    except BaseException, e:
        print e
        return None


class ExampleSpider(sc.Spider):

    name = "bing"
    allowed_domains = ["cn.bing.com"]
    start_urls = (
        "http://cn.bing.com/",
    )

    def parse(self, response):
        bg = re.compile("g_img=\{url:..(http:.*)\",id:")
        path = "/home/zooy/Pictures/bing"
        if not os.path.exists(path):
            os.makedirs(path)

        url = bg.search(response.body).groups()[0]
        file_path = path + "/" + url.split('/')[-1]
        if not os.path.isfile(file_path):
            with open(path + "/" + url.split('/')[-1], "wb") as f:
                f.write(get_file(url))
                f.flush()
                f.close()
    

3.通过crontab 定义了一个定时,每天执行一下这个程序 sh脚本如下:

#! /bin/sh
export PATH=$PATH:/usr/local/bin
cd /home/zooy/workcode/tutorial
nohup scrapy crawl bing >> bing.log 2>&1 &

现在每天都会去cn.bing.com去抓取一张图片到本地来。

转载于:https://my.oschina.net/zooy/blog/783869

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值