2013-06-04 53 views
0

您好我正在嘗試解析Python中的網頁。此網頁位於禁區內,因此我無法提供鏈接。在此網頁中,您可以執行查詢,然後發佈在同一網頁上添加的表格中,但會添加新的網址。當我解析頁面時,除了表格之外,我可以得到所有的東西。確定網頁

我注意到,我的查詢的方式並不重要,url始終是相同的。所以我總是從我的解析器中得到相同的結果,這是沒有查詢結果(表格)的網頁。但是,如果我檢查網頁(在Chrome中),那麼表格及其結果將包含在HTML中。我只是解析器是這樣的:

import urllib.request 
with urllib.request.urlopen("http://www.home_page.com") as url: 
    s = url.read() 
#I'm guessing this would output the html source code? 
print(s) 

然後我的問題,還有一些其他的方式來識別的網頁,所以我會收到網頁上公佈的一切嗎?

+1

是否有一些客戶端腳本正在生成/檢索表?如果您在瀏覽器中禁用了JavaScript並嘗試訪問該網頁,會發生什麼情況? –

+0

感謝您的支持,我只是把條件放入一個HTML表單和新聞搜索,並且生成了表格。 – Addi

+0

沒錯。你的python代碼只是讀取來自HTTP請求的原始字符串數據。它沒有能力執行任何可能在頁面中的客戶端腳本。另一方面,您的瀏覽器將「運行」頁面並執行任何有效的腳本。您需要使用Selenium等瀏覽器自動化工具來獲取所需的內容。 –

回答

0

會根據您的問題,我認爲你正在尋找彌補網絡報廢技術

將在這裏就是我建議 你可以使用正則表示,獲得可以在特定模式
爲表示數據例如

import urllib,re 
siteContent = urllib.urlopen("http://site.com").read() 
GetBoldWords = re.findall(r"<b>[\w\d ]+",siteContent) 
print "Bold Words are :" 
print getBoldWords 

所以在這種情況下,你必須瞭解的正則表達式(regular expression)和一些SP獲得自己的模式

(例如,您必須通過從javascript彈出頁面提交查詢,或者您必須忽略 javascript然後您必須使用Web瀏覽器api,您可以使用Selenium來處理此問題有什麼問題

+0

感謝這個答案我一直在看硒,這似乎是非常有用的,我希望我可以使用它。 – Addi