小编akh*_*hab的帖子

使用dateutil解析日期时遇到麻烦

我使用python-dateutil来解析字符串中的日期:

import dateutil.parser
print dateutil.parser.parse('some null string', fuzzy=True).date()
2012-10-18
print dateutil.parser.parse('some 31 Oct 2012 string', fuzzy=True).date()
2012-10-31
Run Code Online (Sandbox Code Playgroud)

我期待的是dateutil.parser.parse('some null string', fuzzy=True).date()抛出异常,但它返回当前日期.如果在提供的字符串中找不到日期,有人可以告诉我如何避免获取当前日期吗?

提前致谢.

python python-2.7 python-dateutil

12
推荐指数
1
解决办法
8503
查看次数

cron作业不输出到nohup.out

我有一个 在ubuntu服务器上通过CRON JOB运行的start.sh bash脚本

start.sh包含下面提到的代码行

start.sh的路径是/home/ubuntu/folder1/folder2/start.sh

#!/bin/bash

crawlers(){
    nohup scrapy crawl first &
    nohup scrapy crawl 2nd &
    wait $!
    nohup scrapy crawl 3rd &
    nohup scrapy crawl 4th &
    wait
}

cd /home/ubuntu/folder1/folder2/
PATH=$PATH:/usr/local/bin
export PATH

python init.py &
wait $!
crawlers
python final.py
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我在命令行上运行start.sh我在nohup.out文件中输出

但是当它通过cronjob执行这个bash文件时(尽管脚本运行正常)它不会产生nohup.out

我怎样才能得到输出这个的cronjob中的nohup.out

python bash ubuntu cron crontab

12
推荐指数
1
解决办法
7645
查看次数

Web音频振荡器仅在Firefox中单击

我正在尝试使用网络音频振荡器创建一个简单的节拍器,因此不需要外部音频文件.我通过非常快速地上下调节振荡器的音量来创建节拍器的声音(因为你不能多次使用start()和stop()),然后以设定的间隔重复该功能.它最终听起来像一个漂亮的小木块.

下面的代码在Chrome,Safari和Opera中运行/听起来很棒.但是在Firefox中,当音量增加时,会出现令人讨厌的间歇性"点击".我已经尝试改变攻击/释放时间以摆脱点击,但它们必须真的,很久才会一直消失.事实上,很长一段时间,振荡器听起来像一个持续的音符.

var audio = new (window.AudioContext || window.webkitAudioContext)();
var tick = audio.createOscillator();
var tickVol = audio.createGain();

tick.type = 'sine'; 
tick.frequency.value = 1000;
tickVol.gain.value = 0; //setting the volume to 0 before I connect everything
tick.connect(tickVol);
tickVol.connect(audio.destination);
tick.start(0);

var metronome = {
    start: function repeat() {
        now = audio.currentTime;

        //Make sure volume is 0 and that no events are changing it
        tickVol.gain.cancelScheduledValues(now);
        tickVol.gain.setValueAtTime(0, now);

        //Play the osc with a super fast attack and release so it sounds like a click …
Run Code Online (Sandbox Code Playgroud)

javascript firefox web-audio-api

6
推荐指数
1
解决办法
815
查看次数

在errback中或在302请求的情况下产生项目问题

我有一个使用scrapy的问题

yield Request(a_url[0],
                    meta={'item': aitem}, dont_filter=True,
                    callback=self.redeem_url, errback=self.error_page)


    def redeem_url(self, response):
       item = response.request.meta['item']
       item['Click_to_Redeem_URL'] = response.url
       yield item
Run Code Online (Sandbox Code Playgroud)

aitema_url[0]请求之前填充.有时我会得到302,404,301状态,Request所以我想要的是如果我无法从a_url[0]请求项目得到200响应应该让我没有找到任何方法,因为当我得到302 scrapy重试此请求而不是去error_pageerrback ,如果在404中它会转到error_page那里产生项目的方式,因为我在errback中知道我不能得到响应对象但是不包含meta中的项目的失败对象.

提前致谢

python scrapy

5
推荐指数
1
解决办法
1466
查看次数

python网站语言检测

我正在写一个Bot,可以检查成千上万的网站,不管是英文与否.

我正在使用Scrapy(python 2.7框架)来抓取每个网站的第一页,

可以有人建议我检查网站语言的最佳方式,

任何帮助,将不胜感激.

python web-crawler language-detection scrapy

5
推荐指数
1
解决办法
3003
查看次数

scrapy日志问题

我在一个项目中有多个蜘蛛,问题是我现在在SETTINGS中定义LOG_FILE

LOG_FILE = "scrapy_%s.log" % datetime.now()
Run Code Online (Sandbox Code Playgroud)

我想要的是什么 scrapy_SPIDERNAME_DATETIME

但我无法在log_file名称中提供spidername ..

我发现

scrapy.log.start(logfile=None, loglevel=None, logstdout=None)
Run Code Online (Sandbox Code Playgroud)

并在每个spider init方法中调用它,但它不起作用..

任何帮助,将不胜感激

python scrapy python-2.7 scrapyd

3
推荐指数
1
解决办法
3081
查看次数

cronjob等待问题

我在ubuntu服务器上运行python脚本,虽然cronjob bellow是我的bash文件内容

#!/bin/bash
cd /home/ubuntu/
PATH=$PATH:/usr/local/bin
export PATH
nohup scrapy crawl first_job &
nohup scrapy crawl second_job &
nohup scrapy crawl third_job &
wait $(pgrep third_job)
nohup scrapy crawl fourth_job &
Run Code Online (Sandbox Code Playgroud)

我想要的是在third_job完成后,fourth_job开始执行

目前即使third_job完成,fouth_job等待first_jobsecond_job的完成

提前致谢

linux bash ubuntu cron

0
推荐指数
1
解决办法
57
查看次数

循环中的字符串连接

这是我的代码,我想做一个条件连接,我的问题是在for循环结束时我有所有变量开头\n.要删除它,我需要删除每个变量.我认为应该有一些方法来处理这个问题.任何建议,将不胜感激.

foo = bar = remaining = ''
for i in ['foo', 'foo', 'hello', 'foo', 'tr', 'foo', 'bar', 'foo', 'el']:
    if 'foo' in i:
        foo += '\n%s' % i
    elif 'bar' in i:
        bar += '\n%s' % i
    else:
        remaining += '\n%s' % i
foo = foo.strip()
bar = bar.strip()
remaining = remaining.strip()
Run Code Online (Sandbox Code Playgroud)

python python-2.7

0
推荐指数
1
解决办法
164
查看次数