我正在为不同的新闻媒体创建一个网络刮板,对于Nytimes和Guardian来说,它很容易,因为它们有自己的API.
现在,我想从这份报纸GulfTimes.com中获取结果.他们没有在他们的网站上提供高级搜索,所以我使用谷歌新闻.但是,Google新闻Api已被弃用.我想要的是从高级搜索中检索结果的数量,如关键字="埃及"和begin_date ="10/02/2011"和end_date ="10/05/2011".
这在Google新闻用户界面中是可行的,只需将源代码设置为"海湾时代"以及相应的查询和日期,并简单地手动计算结果数量,但当我尝试使用python执行此操作时,我得到403错误,这是可以理解的.
我对如何做到这一点有任何想法吗?或者除谷歌新闻之外还有其他服务可以让我这样做吗?请记住,我会一次发出近500个请求.
import json
import urllib2
import cookielib
import re
from bs4 import BeautifulSoup
def run():
Query = "Egypt"
Month = "3"
FromDay = "2"
ToDay = "4"
Year = "13"
url='https://www.google.com/search?pz=1&cf=all&ned=us&hl=en&tbm=nws&gl=us&as_q='+Query+'&as_occt=any&as_drrb=b&as_mindate='+Month+'%2F'+FromDay+'%2F'+Year+'&as_maxdate='+Month+'%2F'+ToDay+'%2F'+Year+'&tbs=cdr%3A1%2Ccd_min%3A3%2F1%2F13%2Ccd_max%3A3%2F2%2F13&as_nsrc=Gulf%20Times&authuser=0'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
request = urllib2.Request(url)
response = opener.open(request)
htmlFile = BeautifulSoup(response)
print htmlFile
run()
Run Code Online (Sandbox Code Playgroud) 我希望实现类似于Google Play卡的用户界面.
我创建了一个GridView和卡的背景作为xml文件.现在,我希望在卡片上放置图像,以便可以看到底部阴影,但图像的宽度与卡片的宽度相同.问题是图像周围有空白区域,即使我将GridView.LayoutParams设置为与图像大小成比例.我尝试了不同的scaleType但没有工作.另外,一旦我得到图像的宽度以适应卡片的宽度,我该如何确保底部阴影仍然可见?

我的图像适配器类
package me.zamaaan.wallpaper;
import android.content.Context;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter{
private Context mContext;
// Keep all Images in array
public Integer[] mThumbIds = {
R.drawable.background1, R.drawable.background2,
R.drawable.background3, R.drawable.background4,
R.drawable.background1, R.drawable.background2,
R.drawable.background1, R.drawable.background2,
R.drawable.background3, R.drawable.background4,
R.drawable.background1, R.drawable.background2,
R.drawable.background3
};
// Constructor
public ImageAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mThumbIds.length;
}
@Override
public Object getItem(int position) …Run Code Online (Sandbox Code Playgroud) 我有这种语言L只包含一个字符串:
写得更简洁 
这个字符串有2(2 ^ n-1)个字符,我想减少它.我正在考虑使用交集,如果我能找到一些常规语言,其正则表达式的交集将产生这个字符串.
我在这里有递归函数,以防有助于:
function recursiveRegex(charset) {
if(charset.length == 0) {
return [];
} else {
var char = charset.splice(charset.length - 1, 1);
var returnVal = recursiveRegex(charset);
return returnVal.concat(returnVal) + char ;
}
}
console.log(recursiveRegex(['a1', 'a2', 'a3', 'a4']));
Run Code Online (Sandbox Code Playgroud) 我想序列化以下字典中具有键“manager_objects”的所有对象。最简单的方法是什么?
department {
id: 1,
name: 'ARC',
manager_object: <Object>
sub_department: {
id: 5,
name: 'ABC'
manager_object: <Object>
sub_department: {
id: 7,
name: 'TRW',
manager_object: <Object>
sub_department: {
id: 9,
name: 'MYT',
manager_object: <Object>
sub_deparment: {
id: 12,
name: 'NMY'
manager_object: <Object>
sub_department: {}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
我正在寻找一个新闻API,允许我将特定的关键字和来源映射到在特定时间范围内发布的文章数量.
例如,用户将输入
{keyword1, source1, beginDate, endDate}
Run Code Online (Sandbox Code Playgroud)
并且输出将是
There are xx articles.
Display the titles and url of articles
Run Code Online (Sandbox Code Playgroud)
时间范围甚至可以是一年,例如从2011年1月1日到2012年1月1日.谷歌新闻看起来很有希望,但API已被弃用,你只能在当年的两个月内搜索.我查看了纽约时报API,它正是我正在寻找的,但不仅仅是NYT的多个来源.Feedzilla不提供源或时间范围功能的搜索,而且它只允许检索100篇文章.
我一直在寻找网络,找不到任何有用的东西,任何帮助将不胜感激.
我有大约80,000个文本文件,我希望能够对它们进行高级搜索.假设我有两个关键字列表,我想返回包含第一个列表中至少一个关键字和第二个列表中至少一个关键字的所有文件.是否已经有一个库可以做到这一点,如果它存在,我不想重写它.
我在使用基本表单在数据库中插入图像时遇到问题.有两种形式,一种是插入类别(图像和名称),另一种是插入位置(名称,地址,图像等).add_category函数工作正常,它是add_location,没有并且专门插入图像.而且我相信它会插入有问题的图像.
问题是插入图像中的if语句永远不会被执行,我不知道为什么.它位于add_location(..)检查图像if语句下的函数中.
if ($result = $this->mysqli->query($query)) {
$error['result'] = $this->succAddLoc;
}
Run Code Online (Sandbox Code Playgroud)
我删除了文件中不必要的函数:
<?php
class pongodev {
var $mysqli;
// Error handling variables
var $errCatName;
var $errLatitude;
var $errLongitude;
var $errImage;
var $errPhone;
var $errWebsite;
var $succAddLoc;
var $succAddCat;
var $errEmail;
var $errPass;
var $succPass;
var $succEmail;
var $succEmailPass;
var $succResetPass;
var $errResetPass;
var $errUsername;
// Email configuration variables
var $emailSubject;
var $resetMessage;
var $from;
var $adminEmail;
// Connect to database
function __construct($host, $user, $pass, $database){
// Connect to …Run Code Online (Sandbox Code Playgroud) 我想验证以两位数大于2开头的8位数电话号码.
例如:33452334将验证,而32222222则不会.
这是我尝试但它没有工作,因为它不能确保两个第一个数字是相似的:
^[3-9]{2}\d{6}$
Run Code Online (Sandbox Code Playgroud) 我得到了几个grep:当我运行这段代码时写错误.我错过了什么?
这只是其中的一部分:
while d <= datetime.datetime(year, month, daysInMonth[month]):
day = d.strftime("%Y%m%d")
print day
results = [day]
first=subprocess.Popen("grep -Eliw 'Algeria|Bahrain' "+ monthDir +"/"+day+"*.txt | grep -Eliw 'Protest|protesters' "+ monthDir +"/"+day+"*.txt", shell=True, stdout=subprocess.PIPE, )
output1=first.communicate()[0]
d += delta
day = d.strftime("%Y%m%d")
second=subprocess.Popen("grep -Eliw 'Algeria|Bahrain' "+ monthDir +"/"+day+"*.txt | grep -Eliw 'Protest|protesters' "+ monthDir +"/"+day+"*.txt", shell=True, stdout=subprocess.PIPE, )
output2=second.communicate()[0]
articleList = (output1.split('\n'))
articleList2 = (output2.split('\n'))
results.append( len(articleList)+len(articleList2))
w.writerow(tuple(results))
d += delta
Run Code Online (Sandbox Code Playgroud) python ×4
google-news ×2
android ×1
api ×1
grep ×1
gridview ×1
java ×1
javascript ×1
json ×1
keyword ×1
matching ×1
mysql ×1
news-feed ×1
php ×1
regex ×1
string ×1
subprocess ×1
web-scraping ×1
xml ×1