我正在使用Python脚本来废弃google,这是脚本完成后我得到的。想象一下,如果我有100个结果(例如,我展示了2个)。
{'query_num_results_total': 'Око 64 резултата (0,54 секунде/и)\xa0', 'query_num_results_page': 77, 'query_page_number': 1, 'query': 'example', 'serp_rank': 1, 'serp_type': 'results', 'serp_url': 'example2.com', 'serp_rating': None, 'serp_title': '', 'serp_domain': 'example2.com', 'serp_visible_link': 'example2.com', 'serp_snippet': '', 'serp_sitelinks': None, 'screenshot': ''}
{'query_num_results_total': 'Око 64 резултата (0,54 секунде/и)\xa0', 'query_num_results_page': 77, 'query_page_number': 1, 'query': 'example', 'serp_rank': 2, 'serp_type': 'results', 'serp_url': 'example.com', 'serp_rating': None, 'serp_title': 'example', 'serp_domain': 'example.com', 'serp_visible_link': 'example.com', 'serp_snippet': '', 'serp_sitelinks': None, 'screenshot': ''}这是脚本使用代码
import serpscrap
import pprint
import sys
config = serpscrap.Config()
config_new = {
'cachedir': '/tmp/.serpscrap/',
'clean_cache_after': 24,
'sel_browser': 'chrome',
'chrome_headless': True,
'database_name': '/tmp/serpscrap',
'do_caching': True,
'num_pages_for_keyword': 2,
'scrape_urls': False,
'search_engines': ['google'],
'google_search_url': 'https://www.google.com/search?num=100',
'executable_path': '/usr/local/bin/chromedriver',
'headers': {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4',
'Accept-Encoding': 'gzip, deflate, sdch',
'Connection': 'keep-alive',
},
}
arr = sys.argv
keywords = ['example']
config.apply(config_new)
scrap = serpscrap.SerpScrap()
scrap.init(config=config.get(), keywords=keywords)
results = scrap.run()
for result in results:
print(result)如果结果是我想要的url,我想停止脚本,例如"example.com“
如果这里有https,'serp_url': 'https://example2.com',我想检查它,如果我给出没有https的参数,就停止脚本,只需要example2.com。如果无法在脚本工作时检查,我需要解释如何通过我提供的参数找到serp_url。
我不熟悉Python,但我正在构建PHP应用程序,它将运行这个Python脚本和输出结果。但是,我不想使用PHP中的结果(由serp_url等提取),我希望所有事情都用Python来完成。
发布于 2018-09-27 08:30:22
首先,您需要访问serp_url的值。
由于result变量是字典,键入result['serp_url']将返回每个结果的url。
在打印结果的for-循环中,您应该添加一个if-语句,其中result['serp_url']将与包含所需urls的变量进行比较(我认为您的代码中没有提供该信息)。可能是这样的:
for result in results:
print(result)
if my_url == result['serp_url']:
exit在https中也有相同的想法,但是现在我们需要startswith()方法:
for result in results:
print(result)
if my_url == result['serp_url']:
exit
if result['serp_url'].startswith('https'):
exit希望能帮上忙。
https://stackoverflow.com/questions/52531665
复制相似问题