【发布时间】:2012-08-01 12:27:13
【问题描述】:
我正在使用 Beautiful Soup 来尝试抓取页面。
我正在尝试关注this 教程。
我在提交股票代码后尝试获取以下页面的内容:
http://www.cboe.com/delayedquote/quotetable.aspx
本教程适用于具有“GET”方法的页面,我的页面是“POST”。我想知道这是否是问题的一部分?
我想使用第一个文本框——在它下面写着:
“在下方输入股票或指数代码以获取延迟报价。”
相关代码:
user_agent = 'Mozilla/5 (Solaris 10) Gecko'
headers = { 'User-Agent' : user_agent }
values = {'ctl00$ctl00$AllContent$ContentMain$ucQuoteTableCtl$txtSymbol' : 'IBM' }
data = urllib.urlencode(values)
request = urllib2.Request("http://www.cboe.com/delayedquote/quotetable.aspx", data, headers)
response = urllib2.urlopen(request)
调用没有失败,我没有得到一组选项和价格,就像我以交互方式运行页面时一样。我一堆乱码的HTML。
提前致谢!
【问题讨论】:
-
尝试使用 GET 而不是 POST。我能够使用 GET 使其工作。我只是将
?ticker=<stock symbol>附加到URL 并使用urllib2.urlopen()提交。从那里,您可以使用 Beautiful Soup 解析结果。 -
感谢您的帮助,大卫!它仍然对我不起作用。这是我的代码: request = "cboe.com/delayedquote/quotetable.aspx?ticker=IBM" response = urllib2.urlopen(request) htmltext = response.read() soup = BeautifulSoup(htmltext)
-
Hmmmmm...当我上周尝试时,它正在工作。这里一定有其他事情发生。今天我会尝试更多地玩这个。抱歉,如果我误导了你。
-
谢谢大卫。感谢您的所有帮助。
标签: python-2.7 screen-scraping web-scraping beautifulsoup