我需要顯示給定網站上所有ID的值。在urllib
或urllib2
中是否有函數可以讓我讀取該站點,然後在「id =」之後打印值?任何幫助,將不勝感激。如何使用Python2.7在網頁上顯示所有ID的值?
0
A
回答
0
有明顯的(但醜陋的)regex的解決方案,你在哪裏得到的頁面,使用urllib或urllib2,或者更方便requests library,然後申請一個正則表達式,但我會建議pyquery包。 這就像jquery,但是對於python,用css選擇器來獲取節點。
對於您的問題:
from pyquery import PyQuery
page = """
<html>
<body id='test'>
<p id='test2'>some text</p>
</body>
</html>
"""
doc = PyQuery(page)
for node in doc("*[id]").items():
print(node.attr.id)
會產生:
test
test2
並下載頁面:
import requests
page = requests.get("http://www.google.fr").text
而且pyquery
甚至can open urls,用urllib
或requests
。
2
我會這樣做使用BeautifulSoup和請求。我用一個簡單的例子把這個頁面放在一起,併發布在Github上。
請注意,這裏的實際工作是在return語句中 - 大部分是樣板。
from bs4 import BeautifulSoup as BS
import requests as r
def get_ids_from_page(page):
response = r.get(page)
soup = BS(response.content).body
return sorted([x.get('id') for x in soup.find_all() if x.get('id') is not None])
if __name__ == '__main__':
# In response to the question at the URL below - in short "How do I get the
# ids from all objects on a page in Python?"
ids = get_ids_from_page('http://stackoverflow.com/questions/14347086/')
for val in ids:
print val
0
你可以使用正則表達式:
import re
id_list = re.findall('id="(.*?)"', html_text)
或者更復雜一點(以確保你出來只能從HTML標籤解析它):
id_list = re.findall('<[^>]*? id="(.*?)"', html_text)
這樣只能解析特定類型的ID(匹配一些特殊模式)很容易
相關問題
- 1. 如何在python2.7上使用tk顯示gui上的圖像
- 2. 顯示網頁上的所有鏈接
- 3. 如何在所有網頁上顯示Div或Iframe?
- 4. 如何讓網頁使用php顯示所有內容?
- 5. 如何使用Robot Framework獲取網頁上顯示的所有文本?
- 6. codeigniter分頁在所有頁面上顯示相同的值
- 7. 顯示在目前的localStorage對象的所有網頁上的
- 8. 如何顯示所有值
- 9. 如何顯示所有頁面和所有章節使用nl.siegmann.epublib
- 10. 如何顯示訪問網頁的所有用戶?
- 11. 如何知道網頁上顯示的iFrame ID或名稱?
- 12. 如何使用Django在網頁上顯示data_frame.plot.bar()的結果?
- 13. 如何在HTML網頁上顯示JS變量的值?
- 14. 如何在WordPress中顯示頁面上的所有帖子?
- 15. 在網頁上顯示多個網頁
- 16. Div在網頁上沒有顯示?
- 17. 圖像沒有在網頁上顯示
- 18. 如何在顯示所有pdf頁面的iframe中顯示pdf?
- 19. 如何使用javascript在特定網頁上顯示按鈕
- 20. 如何上傳圖片並使用PHP在網頁中顯示?
- 21. 如何使用HTTP處理程序在網頁上顯示System.Drawing.Image?
- 22. 如何使用$ q.all(承諾)並在網頁上顯示回覆?
- 23. 如何使用AJAX在網頁上顯示動態數據
- 24. 如何使用python和HTML在網頁上顯示文本
- 25. 如何在php頁面顯示如下所示的選定值?
- 26. MOSS自定義MasterPage不在所有網站頁面上顯示
- 27. 如何使用struts在第一頁顯示所有產品?
- 28. 如何在Node-Red的網頁上顯示有效載荷
- 29. 如何使用Python顯示網頁?
- 30. 如何使用手機顯示網頁
xpath'// * [string-length(@id)> 0]',遍歷結果集,並吐出id屬性值。 –
@MarcB:你需要告訴他如何*先在數據上運行* xpath查詢.. –
謝謝,我正要問這個問題。感謝您迄今爲止的評論。 =) – user1981656