首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BeautifulSoup4可以在Ubuntu上正常运行,但不能在Raspbian上运行

BeautifulSoup4可以在Ubuntu上正常运行,但不能在Raspbian上运行
EN

Stack Overflow用户
提问于 2015-05-04 13:39:14
回答 1查看 130关注 0票数 1

我在我的Ubuntu Server 15.04 VPS上运行了下面的脚本,它工作得很好。我正在调整它以在我的Raspberry Pi (完全更新的Raspbian Wheezy)上运行,但是BeautifulSoup4不能像在VPS上那样检测页面元素。代码和回溯如下。为什么这个错误发生在我的Pi上,而不是VPS上?

下面是相关的代码片段。此外,还导入了osBeautifulSoup (from bs4)和requests。第5行和下面的代码在一个循环中(实际的脚本循环遍历字典以检查所有设备);我已经验证了a)下面的命令是实际运行的命令,b)运行完全相同的代码在VPS (返回数据)上运行,但不在Pi上运行(抛出错误)。

代码语言:javascript
运行
复制
page = requests.get('https://developers.google.com/android/nexus/images')
soup = BeautifulSoup(page.text)

# loop starts here
cur = "/var/www/nexus_temp/shamu.html"
try:
    os.remove(cur)
except OSError:
    pass

g = open(cur, 'wb')
data = str(soup.select("h2#shamu ~ table")[0])
g.write(data)
g.close()

回溯:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "./nimages.py", line 40, in <module>
    data = str(soup.select("h2#shamu ~ table")[0])
IndexError: list index out of range

从Python命令行运行脚本并执行print soup.select("h2#shamu ~ table")只会返回[],但print soup.find_all('h2')会返回页面上的所有<h2>元素。与soup.prettify()一样,打印page.text也会返回整个页面的源代码。

EN

回答 1

Stack Overflow用户

发布于 2015-05-04 14:15:52

这可能是一个版本问题,关于所使用的Python的版本。你可以尝试Scrapy,使用HtmlXPathSelector你应该能够让它工作,Scrapy在Python2.7上工作,我已经让Scrapy在RPi上工作,所以我可以保证它会工作。

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

https://stackoverflow.com/questions/30023244

复制
相关文章

相似问题

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