首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BeautifulSoup和Amazon.co.uk

BeautifulSoup和Amazon.co.uk
EN

Stack Overflow用户
提问于 2012-11-05 20:16:12
回答 1查看 1.1K关注 0票数 4

我正在尝试解析亚马逊,以汇编一个价目表,这是一个与统计相关的更大项目的一部分。然而,我被难住了。我想知道是否有人可以检查我的代码,并告诉我哪里出错了?

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding:  utf-8 -*-
import mechanize
from bs4 import BeautifulSoup

URL_00 = "http://www.amazon.co.uk/Call-Duty-Black-Ops-PS3/dp/B007WPF7FE/ref=sr_1_2?ie=UTF8&qid=1352117194&sr=8-2"

bro = mechanize.Browser()
resp = bro.open(URL_00)
html = resp.get_data()
soup_00 = BeautifulSoup(html)
price = soup_00.find('b', {'class':'priceLarge'})
print price #this should return at the very least the text enclosed in a tag

根据截图,我上面写的东西应该可以用,不是吗?

我在打印输出中得到的结果是"[]",如果我把最后一行改成这样:

代码语言:javascript
复制
 price = soup_00.find('b', {'class':'priceLarge'}).contents[0].string

代码语言:javascript
复制
price = soup_00.find('b', {'class':'priceLarge'}).text

我得到一个"noneType“错误。

我很困惑为什么会发生这样的事情。我已经把它改成了UTF8 (根据页面内部的超文本标记语言),但这没有什么区别,所以我肯定编码不是问题所在。

另外,我不知道这是否相关,但是我在linux上的系统区域设置是UTF-8应该不会造成问题吧?

任何想法都是受欢迎的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-05 20:22:36

不需要这样做,因为Amazon提供了API

https://affiliate-program.amazon.co.uk/gp/advertising/api/detail/main.html

产品广告应用编程接口可帮助您使用产品搜索和查找功能、产品信息和功能(如客户评论、类似产品、愿望列表以及新的和使用过的列表)来宣传亚马逊产品。

更多细节在这里:Amazon API library for Python?

我正在使用API,它比从网页上抓取数据要容易得多,也可靠得多,即使是用BS。你还将获得一个新的,二手等的价格列表,而不仅仅是“标题”价格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13231937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档