首页 > 解决方案 > Python 请求 - 使用 twitter 搜索

问题描述

我正在尝试使用请求从 twitter 获取数据,但是当我运行我的代码时出现此错误:simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

到目前为止,这是我的代码:

import requests

url = 'https://twitter.com/search?q=memes&src=typed_query'
results = requests.get(url)
better_results = results.json()
better_results['results'][1]['text'].encode('utf-8')
print(better_results)

标签: pythonpython-requests

解决方案


因为您正在向dynamic网站发出请求。

当我们向动态网站发出请求时,我们必须首先呈现 html 以便接收我们期望接收的所有内容。

仅仅提出请求是不够的。

其他库,例如requests_html使用lite browser.

你可以试试这段代码:

# pip install requests_html
from requests_html import HTMLSession

url = 'https://twitter.com/search?q=memes&src=typed_query'

session = HTMLSession()
response = session.get(url)

# rendering part
response.html.render(timeout=20)

better_results = response.json()
better_results['results'][1]['text'].encode('utf-8')
print(better_results)

推荐阅读