我现在正在学习网络抓取并构建一个简单的网络应用程序,我决定练习抓取课程表。这是我在应用程序中遇到问题的代码片段,它使用 Python 2.7.4、Flask、Heroku、BeautifulSoup4 和 Requests。
import requests
from bs4 import BeautifulSoup as Soup
url = "https://telebears.berkeley.edu/enrollment-osoc/osc"
code = "26187"
values = dict(_InField1 = "RESTRIC", _InField2 = code, _InField3 = "13D2")
html = requests.post(url, params=values)
soup = Soup(html.content, from_encoding="utf-8")
sp = soup.find_all("div", {"class" : "layout-div"})[2]
print sp.text
这在当地很有效。它按预期返回字符串“Computer Science 61A P 001 LEC:”。但是,当我尝试在 Heroku 上运行它(使用heroku run bash
然后运行python
)时,我得到了一个错误,403 Forbidden
.
我错过了 Heroku 上的一些设置吗?起初我以为是学校设置,但后来我想知道为什么它在本地运行没有任何问题......任何解释/建议将不胜感激!先感谢您。