作者ntumath (math mad)
看板Python
标题Re: [问题] 股票交易爬虫问题
时间Wed May 24 03:18:51 2017
※ 引述《a00880022 (QQ)》之铭言:
: 大家好
: 小弟最近接触爬虫
: 想要从 台湾证券交易所
: http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php
: 爬取过去每天的收盘价
: 但由於不熟悉网页架构
: 在爬取的时候不知道怎麽从python输入input给网页然後抓取资料
: 附上目前程式码
: ------------------------------------
: import requests
: from bs4 import BeautifulSoup
: payload={}
: date=('download=&query_year=2017&query_month=5&CO_ID=1101&query-button=%E6%9F%A5%E8%A9%A2')
: res=requests.post('http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php',data=date)
: print (res.text)
: ------------------------------------
: 我是利用一个date值存入年月以及股票编号想要回传给网页
: 但print出来的值好像接收不到(无法读取table)
: 想要请大神们就救我这个新手
: google了一整天还是找不到个结果.....
本来neil987大大已经回答你的问题了,不过就在昨天下午五点半
证交所又更新他的网站啦orz... 所以在这边提供完整可行的code
import requests
params = {"date":"20170524",
"stockNo":"1101"}
res = requests.post('
http://www.twse.com.tw/exchangeReport/STOCK_DAY',
params=params)
eval(res.text)
这样传回的就是跟网站求的table罗 ^^
*注意:因为五月还没结束,所以"date"要打当天的日子,结束之後都会改成XX01。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.253.33
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1495567133.A.FCF.html
※ 编辑: ntumath (140.112.253.33), 05/24/2017 03:20:44
1F:推 coyoteY: 05/24 07:14
2F:推 coeric: 刚刚我爬了 下...不是用get就可以了唷? 05/24 11:07
3F:→ coeric: 应该说 我捞到的是json格式...get就可处理了 05/24 11:07
啊~应该不是说是json就可以用get处理,主要还是看你跟server是透过哪种方法传,
只是目前大部份的server都应该会接受post,所以这边会没差
4F:推 a00880022: 感谢感谢 不过这次我也是用get抓到 不知道原来还可以这 05/24 11:55
5F:→ a00880022: 样写 05/24 11:55
6F:→ a00880022: 又多学了一招XDD 05/24 11:55
7F:→ a00880022: 想问一下最後面加的params跟data的差别在哪里? 05/24 11:56
params就是把参数变成string加在url後面:?後面全部都是你的参数,通常get都用这个
data是把资料装在body(详细的我不知道):也会像get去要同一个url,但是你print出来
会完全看不到你的参数。通常post用这个。
我想详细的解释可能要学HTTP之後才会了解,你有兴趣可以去看一下
8F:推 chababa: 谢谢大大分享 05/24 16:30
9F:推 a856479: 我是用get直接抓csv档下来 05/25 01:12
※ 编辑: ntumath (140.112.253.33), 05/25/2017 01:30:58
10F:推 coeric: 应该是我表达不当...XDDD 05/25 08:03
11F:→ coeric: get跟json是两件事没错.... 05/25 08:03
12F:→ coeric: 因为我看到网址有「exchangeReport」 觉得是汇出csv档 05/25 08:04
13F:→ coeric: 然後又去回归回应主题(post),用get就可以了 05/25 08:05