【发布时间】:2015-03-22 20:35:28
【问题描述】:
我有一个非常简单的例子,我认为requests 应该替换urllib2 没有问题。但是,似乎在最简单的情况下,我错过了一些东西。谁能告诉我为什么? (我正在尝试为我的GF获取makeup pricing:)
from bs4 import BeautifulSoup
myurl = 'http://www.lancome-usa.com/skincare-cleanse/skincare-cleanse,default,sc.html'
# 1. urllib2
import urllib2
r = urllib2.urlopen(myurl)
soup = BeautifulSoup(r)
print 'MOUSSE RADIANCE' in soup.text.encode('utf-8').upper()
print '$32.00' in soup.text.encode('utf-8')
print '------------------------------------------------------'
# 2. requests
import requests
r = requests.get(myurl)
soup = BeautifulSoup(r.text)
print 'MOUSSE RADIANCE' in soup.text.encode('utf-8').upper()
print '$32.00' in soup.text.encode('utf-8')
回复:
True
True
------------------------------------------------------
False
False
最后,我升级了我的requests 库,同时我意识到使用r.text 是行不通的。但是使用r.text.encode('utf-8') 和r.content 将构建具有正确内容的汤。
【问题讨论】:
-
当您使用
r.raw而不是r.text时是否有效? -
对我有用,您使用的是什么版本的请求?
标签: python python-2.7 web-scraping urllib2 python-requests