簡體   English   中英

python web scraping:onclick ajax請求不返回狀態為200的任何內容

[英]python web scraping: onclick ajax request returns nothing with status 200

我正在嘗試從網站上抓取表格數據。 我想要的數據“隱藏”在一個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。如何在單擊事件中“隱藏”數據?

urllib只會用html內容回復您,因此您不會干擾該網站上的JS東西,其中有robobrowserscrapy類的模塊,但它們僅單擊html復選框或按鈕。
因此,其他選項更可取。

1)通過使用Phantom的無頭瀏覽器來Selenium

2)使用Scrapy + splash

我可以問一下您執行了什么步驟之后再點擊按鈕嗎?
您放置一些信息后單擊按鈕嗎? 或者您只是在網站顯示時單擊按鈕?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM