免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2285 | 回复: 3
打印 上一主题 下一主题

请教一个Beautiful Soup问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-02 14:04 |只看该作者 |倒序浏览
请教一个Beautiful Soup问题

您好,冒昧打扰一下。在使用Beautiful Soup解析亚马逊书店的页面:http://www.amazon.com/s/qid=1246 ... g_2?ie=UTF8&rs=1000&rh=n%3A!1000%2Ci%3Astripbooks&page=2的时候,我想提取该页内所有class="productTitle"的div标签,代码如下:
import urllib
from BeautifulSoup import BeautifulSoup
import re



webURL = "http://www.amazon.com/s/qid=1246505576/ref=sr_pg_2?ie=UTF8&rs=1000&rh=n%3A!1000%2Ci%3Astripbooks&page=2"
u = urllib.urlopen(webURL)
doc = u.read()      

soup = BeautifulSoup(doc)

print soup.findAll("div",attrs={"class" : "productTitle"})


但是运行结果为:
>>> ================================ RESTART ================================
>>>
[]
>>>
不知为什么会这样,弄了一下午,还是这样。希望您帮着看一下。谢谢

论坛徽章:
0
2 [报告]
发表于 2009-07-02 15:03 |只看该作者
有一个奇怪的发现。在上面的代码中添加一行代码:
print  doc
然后在输出结果中搜索字符串class="productTitle",但是根本找不到这个字符串。但是同样的页面URL,打开浏览器的“查看”——>“页面源代码”,再次搜索字符串class="productTitle",这次却能找得到这些字符串。我晕???????????

      诸位,谁能告诉在下为什么urllib抓取的页面内容会丢失东西呢???实在弄不懂。

论坛徽章:
0
3 [报告]
发表于 2009-07-02 17:23 |只看该作者
如果下载下来的源码和你在浏览器里面的源码有出入,可能是服务器加了解析了,你可以加上header试试。

论坛徽章:
0
4 [报告]
发表于 2009-07-03 09:32 |只看该作者
import urllib2
import cookielib
import re
jar = cookielib.FileCookieJar("cookies")
results_web = "http://www.amazon.com/s/qid=1246505576/ref=sr_pg_2?ie=UTF8&rs=1000&rh=n%3A!1000%2Ci%3Astripbooks&page=2"
print results_web
request_web = urllib2.Request(results_web)
request_web.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)')
opener_web = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
text = opener_web.open(request_web).read()
print re.findall(r'class="productTitle"',text)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP