Pythonon ajax php 文本结果与屏幕结果不同?
Pythonon ajax php prase result is different from on screen result?
我试图从此页面中提取搜索结果:“http://std.stheadline.com/daily/formerly.php”。
在网页上选择 20-Nov 至 22-Nov 并选中“财经”新闻类别复选框时,会给出 47 个结果。
然而,我的 python php 代码和从 Chrome Inspect 获得的参数,产生了 162 个结果。服务器似乎没有识别我的代码参数,并给了我最新日期的所有新闻类别的结果。
我使用了这个代码:
将 pandas 导入为 pd
url= "http://std.stheadline.com/daily/ajax/ajaxFormerly.php?startDate=2019-11-20&endDate=2019-11-22&type%5B%5D=15&keyword="
df = pd.read_json(url)
print(df.info(verbose=True))
print(df)
也尝试过:
url= "http://std.stheadline.com/daily/ajax/ajaxFormerly.php?startDate=2019-11-20&endDate=2019-11-22&type=15&keyword="
它使用 POST
请求在正文中发送参数,而不是在 url 中。您不能在 url 中发送参数。您可以使用模块 requests
(或 urllib
)发送 POST
个请求
import requests
url = 'http://std.stheadline.com/daily/ajax/ajaxFormerly.php'
params = {
'startDate': '2019-11-20',
'endDate': '2019-11-22',
'type[]': '15',
'keyword': '',
}
r = requests.post(url, data=params)
data = r.json()
print(data['totalCount']) # 47
要将其加载到 DataFrame
,您可能必须使用 io.StringIO
在内存中创建文件。
import requests
import pandas as pd
import io
url = 'http://std.stheadline.com/daily/ajax/ajaxFormerly.php'
params = {
'startDate': '2019-11-20',
'endDate': '2019-11-22',
'type[]': '15',
'keyword': '',
}
r = requests.post(url, data=params)
f = io.StringIO(r.text)
df = pd.read_json(f)
print(df)
我试图从此页面中提取搜索结果:“http://std.stheadline.com/daily/formerly.php”。 在网页上选择 20-Nov 至 22-Nov 并选中“财经”新闻类别复选框时,会给出 47 个结果。 然而,我的 python php 代码和从 Chrome Inspect 获得的参数,产生了 162 个结果。服务器似乎没有识别我的代码参数,并给了我最新日期的所有新闻类别的结果。
我使用了这个代码: 将 pandas 导入为 pd
url= "http://std.stheadline.com/daily/ajax/ajaxFormerly.php?startDate=2019-11-20&endDate=2019-11-22&type%5B%5D=15&keyword="
df = pd.read_json(url)
print(df.info(verbose=True))
print(df)
也尝试过:
url= "http://std.stheadline.com/daily/ajax/ajaxFormerly.php?startDate=2019-11-20&endDate=2019-11-22&type=15&keyword="
它使用 POST
请求在正文中发送参数,而不是在 url 中。您不能在 url 中发送参数。您可以使用模块 requests
(或 urllib
)发送 POST
个请求
import requests
url = 'http://std.stheadline.com/daily/ajax/ajaxFormerly.php'
params = {
'startDate': '2019-11-20',
'endDate': '2019-11-22',
'type[]': '15',
'keyword': '',
}
r = requests.post(url, data=params)
data = r.json()
print(data['totalCount']) # 47
要将其加载到 DataFrame
,您可能必须使用 io.StringIO
在内存中创建文件。
import requests
import pandas as pd
import io
url = 'http://std.stheadline.com/daily/ajax/ajaxFormerly.php'
params = {
'startDate': '2019-11-20',
'endDate': '2019-11-22',
'type[]': '15',
'keyword': '',
}
r = requests.post(url, data=params)
f = io.StringIO(r.text)
df = pd.read_json(f)
print(df)