如何使用Python的urllib标准库解析yelp的评论?

时间:2015-12-28 10:44:36

标签: python http parsing urllib yelp

我遇到了与urllib库和HTTP错误404相关的问题。由于我开始直接从网站解析yelps审查而不使用API​​(因为它非常受限制),我&#39面对一种奇怪的行为:我的标准方法根本不起作用。基本上我尝试使用POST请求传递一些数据来检索一些特定信息(我需要对评论进行排序并获取最新信息)并避免使用特定标题关闭我(" User-Agent&# 34;标题有助于隐藏你的解析机器人)。 对于一个例子,我把最接近的mconalds给了我并尝试解析页面。一切都很简单,但我不行。我知道我可以使用一个简单的" GET"(传递一个简单的字符串而没有任何额外的数据作为" POST"请求可以)请求,但我非常有信心甚至& #34; POST"必须正常工作,但我找不到问题。

url = 'http://www.yelp.com/biz/mcdonalds-new-york-139/' # our url
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'} # headers
values = {'sort_by':'date_desc'} # sorting values which help to sort the reviews

data = urllib.parse.urlencode(values) # Making the URL encoding
data = data.encode('UTF-8')
req = urllib.request.Request(url=url, data=data, headers=headers) # Creating a POST request
resp = urllib.request.urlopen(req) 
with urllib.request.urlopen(req) as response:
   the_page = response.read() # Retrieving the data we supposed to get

print(the_page) # An Error 404 

任何人都可以指出我做错了什么吗? " GET"请求仍然很好,但我想使用" POST"在正文中传递标题和数据查询。

0 个答案:

没有答案