我正试图从网站上抓取一个表格数据。我想要的数据是“隐藏”在onclick事件后面。
<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.如何在点击事件中“获取”后面的数据?
答案 0 :(得分:0)
urllib
只会回复您html
内容,因此您无法干扰该网站上的JS内容,有robobrowser
,scrapy
等模块但他们只点击html
复选框或按钮
所以其他选择更可取。
1)Selenium
使用无头浏览器Phantom
。
2)使用Scrapy + splash
我可以问你在点击按钮之前做了什么步骤吗? 你放一些信息后点击按钮了吗?或者您只是在网站出现时点击按钮?