从一页打印html不会显示所有带有python和urllib2的源页面[重复]
Posted
技术标签:
【中文标题】从一页打印html不会显示所有带有python和urllib2的源页面[重复]【英文标题】:Printing the html from one page doen't show all the source page with python and urllib2 [duplicate] 【发布时间】:2013-08-20 10:01:59 【问题描述】:我正在尝试阅读亚马逊的特定页面。
req = urllib2.Request('http://www.amazon.com/Upright-Citizens-Brigade-Comedy-Improvisation/dp/0989387801/ref=lp_1_1_6/175-0367440-7496156?ie=UTF8&qid=1376827779&sr=1-6%20buybox._V181901516_.png)%20center%20top%20no-repeat;')
req.add_header('User-agent', 'Mozilla/5.0\
(Windows NT 6.2; WOW64) AppleWebKit/537.11 (Khtml, like Gecko)\
Chrome/23.0.1271.97 Safari/537.11')
response=urllib2.urlopen(req)
html = response.read()
print html
我正在尝试从页面源代码中显示的新项目“$25.00”中读取价格,但该部分未显示在 html 打印中。我做错了什么?
【问题讨论】:
您应该可以将当前请求的 url 替换为:http://www.amazon.com/Upright-Citizens-Brigade-Comedy-Improvisation/dp/0989387801/
,然后只需解析 html 即可找到价格。这里有很多有用的答案:Parsing HTML Python.
【参考方案1】:
您应该使用 html 解析器,例如 lxml 或 BeautifulSoup。这是一个使用lxml
的例子:
parser = etree.HTMLParser()
root = etree.fromstring(html, parser=parser)
print root.xpath('//td[@class="a-text-right dp-new-col"]/a/span/text()')[0]
打印:
$25.00
注意,所需的标签及其值是使用xpath 表达式找到的:
XPath,即 XML 路径语言,是一种用于选择节点的查询语言 来自 XML 文档。
另见:
Parsing HTML using Python Parsing HTML in Python希望对您有所帮助。
【讨论】:
以上是关于从一页打印html不会显示所有带有python和urllib2的源页面[重复]的主要内容,如果未能解决你的问题,请参考以下文章
通过DrawerNavigator中的StackNavigator将数据从一页传递到另一页
如何在 Jquery DataTable 中添加新行而不会在从一页移动到另一页时丢失新行