2016-10-27 19 views
0

我需要從有兩個元素的形式python3程序颳了一個網站(比如「www.example.com」)如下:使用Python3從JS刮數據生成的內容

1: Textbox 
2: Dropdown 

需要運行具有多個選項的查詢(例如'abc'和'1')以在上面的表格中填充/選擇並且刮取由此產生的頁面。填寫表單並提交後生成的頁面在瀏覽器中顯示爲「www.example.com/abc/1」。本頁面的結果通過javacript獲取,可以在頁面源中查看。

<script type="text/rfetchscript"> 
$(document).ready(function(){ 
$.ajax({ 
url: "http://clients.example.com/api/search", 
data: JSON.parse('{"textname":"abc", "dropval":"1"}'), 
method: 'POST', 
dataType: 'json', 
     Logic to fetch the data 
</script> 

我曾嘗試用請求的方法,urllib的獲得頁面的結果:

1: RESP = requests.get( 'http://www.example.com/abc/1')

下面的相關的JavaScript簡介

2: REQ = urllib.request.Request( 'http://www.example.com/abc/1') X = urllib.request.urlopen(REQ)
源碼= x.read()

3:也試過scrapy。

但是,以上所有僅返回「查看頁面源」中所見的靜態數據,而不是瀏覽器中可以看到的實際結果。

在此處尋找正確方法的幫助。

回答

0

使用urllib或請求來刮頁面只會返回頁面源,因爲它不能執行服務器返回的javascript代碼等。如果您想要像瀏覽器一樣加載內容,則必須使用帶有可選chrome或firefox驅動程序的selenium。如果您想繼續使用urllib或要求您必須查找該網站加載的內容頁面,例如chrome瀏覽器中的網絡選項卡。可能您感興趣的數據是從json文件加載的。