我需要显示给定网站上所有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