即使Google的官方API没有在查询结果中提供时间信息-甚至没有对关键字进行时间过滤,高级搜索中都存在时间过滤选项:
Google results for stackoverflow in the last one hour
GoogleScraper库提供了许多与时间相关的灵活选项。如何使用库添加时间功能?
答案 0 :(得分:0)
经过一番检查,我发现Google将qdr
值发送给tbs
键的过滤信息(可能是time based search
,尽管未正式说明):< / p>
https://www.google.com/search?tbs=qdr:h1&q=stackoverflow
这将获取过去一个小时的结果。 m
和y
字母可以分别使用几个月和几年。
此外,要添加按日期排序功能,请同时添加sbd
(应为sort by date
)值:
https://www.google.com/search?tbs=qdr:h1,sbd:1&q=stackoverflow
我能够将这些关键字插入GoogleScraper的BASE Google URL。在get_base_search_url_by_search_engine()
中的return
方法的末尾(恰好在scraping.py
之前)插入以下行:
if("google" in str(specific_base_url)):
specific_base_url = "https://www.google.com/search?tbs=qdr:{},sbd:1".format(config.get("time_filter", ""))
现在在您的配置中使用time_filter
选项:
from GoogleScraper import scrape_with_config
config = {
'use_own_ip': True,
'keyword_file': "keywords.txt",
'search_engines': ['google'],
'num_pages_for_keyword': 2,
'scrape_method': 'http',
"time_filter": "d15" #up to 15 days ago
}
search = scrape_with_config(config)
结果将仅包括时间范围。此外,结果中的文本片段将具有原始日期信息:
one_sample_result = search.serps[0].links[0]
print(one_sample_result.snippet)
4分钟前它必须非常简单-let propertytotalPriceOfOrder = order.items.map(item => + item.unit * + item.quantity * + item.price);。 顺序是您整个json对象的位置。