python web抓取:onclick ajax请求返回没有状态200
问题描述:
我想从网站刮表数据。我想要的数据是隐藏在onclick事件的后面。python web抓取:onclick ajax请求返回没有状态200
<a class="text" onclick="javascript:openPAOnSR_RS('some_sku', 'brandname','divId', 'some_args','OPC Page Details');cmTagAndLink('Open Link','OPC Page Details',null,null,null);">The Click</a>
点击后,有一个帖子请求和下面的一些细节。
Request URL:http://www.somewebsite.com/catalog/tables.do?some_sku=sku&brandKey=brandname&divId=divId
Request Method:POST
Status Code:200 OK
Remote Address:23.xxxxxxxxxxx
Referrer Policy:no-referrer-when-downgrade
所以我写了下面的代码,但它没有返回任何东西。
from urllib.parse import urlencode
from requests.exceptions import RequestException
import requests
def get_page_index():
string_param = {
'some_sku': 'sku',
'brandKey': 'brandname',
'divId': 'divId'
}
url = "http://www.somewebsite.com/catalog/tables.do?" + urlencode(string_param)
try:
response = requests.post(url=url, data=string_param)
if response.status_code == 200:
print(response.url, response.content)
return response.text
return None
except RequestException as e:
print(e)
我没有输出,状态显示200.我应该如何获取点击事件后面的数据?
答
urllib
只会对你与html
内容,所以你不能与网站上的JS的东西干扰,有模块,如robobrowser
,scrapy
但他们只点击html
复选框或按钮。
所以其他选择与更好是。
1)Selenium
通过使用使用Phantom
的无头浏览器。
2)使用Scrapy + splash
我能问什么步骤后,你点击该按钮之前在做什么?
你是否在放置一些信息后点击按钮。或者您只是在网站出现时点击按钮?
你能解释什么时候发生onclick事件吗?我知道你要求一个网站,然后你做点击,然后出现一个'JS'对话框,并在'JS'框后面提供你的数据;我对吗? –
是的,这是正确的。所以我有这个网页我试图刮,并有一个onclick链接,将启动一个JS对话框。我知道我可以从JS框中提取数据,但是如何执行“单击”来启动JS对话框?问题是我有多个类似结构的网页,我试图从中提取信息。我想写一个可以做鼠标点击的抓取脚本。 –