首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python请求从网页中抓取数据

使用python请求从网页中抓取数据
EN

Stack Overflow用户
提问于 2020-07-07 00:26:17
回答 1查看 64关注 0票数 1

我正在尝试搜索域搜索页面(您可以在那里输入关键字,并获得一些随机结果),我在网络选项卡https://api.leandomainsearch.com/search?query=computer&count=all (关键字:计算机)中找到了这个api url,但我得到了这个错误

代码语言:javascript
复制
{'error': True, 'message': 'Invalid API Credentials'}

以下是代码

代码语言:javascript
复制
import requests

r = requests.get("https://api.leandomainsearch.com/search?query=cmputer&count=all")
print(r.json())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-07 00:56:31

站点需要您设置AuthorizationReferer HTTP头。

例如:

代码语言:javascript
复制
import re
import json
import requests


kw = 'computer'

url = 'https://leandomainsearch.com/search/'
api_url = 'https://api.leandomainsearch.com/search'

api_key = re.search(r'"apiKey":"(.*?)"', requests.get(url, params={'q': kw}).text)[1]
headers = {'Authorization': 'Key ' + api_key, 'Referer': 'https://leandomainsearch.com/search/?q={}'.format(kw)}
data = requests.get(api_url, params={'query': kw, 'count': 'all'}, headers=headers).json()

# uncomment this to print all data:
# print(json.dumps(data, indent=4))

for d in data['domains']:
    print(d['name'])

print()
print('Total:', data['_meta']['total_records'])

打印:

代码语言:javascript
复制
...

blackopscomputer.com
allegiancecomputer.com
northpolecomputer.com
monumentalcomputer.com
fissioncomputer.com
hedgehogcomputer.com
blackwellcomputer.com
reflectionscomputer.com
towerscomputer.com
offgridcomputer.com
redefinecomputer.com
quantumleapcomputer.com

Total: 1727
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62760376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档