尝试通过网络抓取API时的响应代码418

时间:2020-08-13 05:13:14

标签: python-3.x api web-scraping

我正在尝试从API https://www.techinasia.com/wp-json/techinasia/2.0/posts获取数据。 但我得到的HTTP响应为418。 解决该问题的可能方法是什么?

url ='https://www.techinasia.com/wp-json/techinasia/2.0/posts'
response = requests.get(url)
print(type(response),response)```

Output: 
<class 'requests.models.Response'> <Response [418]>

1 个答案:

答案 0 :(得分:2)

通过您选择的用户代理即可获得响应。请求会调用HTTP get请求,但有时服务器需要使用用户代理,部分/完整的标头,参数或cookie来对请求进行身份验证。

在这种情况下,您只需要一个用户代理,实际上您甚至不需要传递有效的用户代理。

代码示例

import requests

headers = {
   'User-Agent': 'M',
   }

requests.get('https://www.techinasia.com/wp-json/techinasia/2.0/posts',headers=headers)

输出

<Response [200]>

您必须在HTTP请求中指定标头(请求的get方法),并为此提供一个参数headers。 headers参数应包含一个python字典。