我试着用TumblrAPI,PyTumblr来具体地,在带有特定标签的帖子中抓取一些图片
这就是我使用的代码,非常简单:
import pytumblr
from bs4 import BeautifulSoup
# Authenticate via API Key
client = pytumblr.TumblrRestClient('#Here is my API Key#')
print client.posts('wergida.tumblr.com', type='photo', tag='BERND AND HILLA BECHER', limit=1, offset=0)
结果是这样的:
但是当我使用beauthoulsoup解析我得到的信息时:
soup = BeautifulSoup(client.posts('wergida.tumblr.com', type='photo', tag='BERND AND HILLA BECHER', limit=1, offset=0),"lxml")
我知道了:
Traceback (most recent call last):
File "tumblr_test.py", line 29, in <module>
soup = BeautifulSoup(client.posts('wergida.tumblr.com', type='photo', tag='BERND AND HILLA BECHER', limit=1, offset=0),"lxml")
File "/Users/CB/Public/scrapy/env/lib/python2.7/site-packages/bs4/__init__.py", line 199, in __init__
if markup[:5] == "http:" or markup[:6] == "https:":
TypeError: unhashable type
我尝试过不同的解析器,比如“语法分析器.html“html5lib”,仍然得到相同的错误。在
谢谢你的任何线索!在
client.post()
调用返回一个Python dictionary,而不是一个包含HTML的字符串;它已经为您解析了JSON响应。因为BeautifulGroup试图将其视为一个字符串,您会得到错误,因为:5
作为一个切片对象传递到字典,这是不可哈希的:字典不是HTML。没有必要尝试用beauthoulsoup解析它。只需访问嵌套结构中的单个数据元素;如果这样的元素本身是一个字符串,并且该字符串包含HTML标记,那么解析该特定数据段可能是有意义的:
^{pr2}$相关问题 更多 >
编程相关推荐