※ 引述《clansoda (小笨)》之铭言:
: C大我把我的问题发一篇,我目前大部分都有看懂
: 第一个问题是我有?GET,他的maunal里面没有提到referer这个
: 请问这个是要设成你寻页的什么才是正确的呢?
chrome F12查看该网页的requested header可以看到他有referer
curl的manual里面有referer的参数
httr::config的...可以放置curl的其他参数,可以?config查看
GET第二个element就是给config
: 因为看你设的参数是该网页的整页,也是inspect页面的network
: 的第一项,所以我有点疑惑这个参数究竟要设什么
就是给request headers
: 第二个问题是str_replace_all,manual,只有\\1\\1这个例子
: 那个例子是多一个前面的文字,但是您的写法把前面的括号消掉了
: 请问这个\\(|\\)代表什么涵义呢?
这是regexp, ( 或 )这个取代掉, |代表或的意思
又因为()在regexp里面有意义,所以需要用escape \\
可以参考这个网站:http://regexone.com/
: 第三个问题是这个str_replace跑完后,我用class查询他是chracter
: 可是您在后面接了一个fromJson然后整个LIST就变成dataframe的型态了
: 为什么他是Json的格式呢?是如何判断的,而如果str_replace只消掉
: 前面的文字如showStoreList,而没有消掉括号的话fromJson就会出错
: 请问如何判断他是JSON的格式呢?
怎么判断这个问题很怪,你找一下JSON的范例格式对一下满明显的
那个样式就是一个javascript的物件(摊手
就是JSON (javascript object notation)....
不知道怎么回答你这个问题QQ
: 最后一个问题是在这个全家页面用我之前用的ctrl+u这种显示整页html的
: 方式会看不到想要parsing的格式,用C大这种inspect的方式可以看到他后面API的
: 走向,我点那个api的页面会出现类似
: "NAME": "全家基隆庙口店",
: "TEL": "02-24289166",
: "POSTel": "02-77230578",
: "px": 121.742868,
: "py": 25.128415,
: "addr": "基隆市仁爱区仁三路33号",
: "SERID": 15829.0,
: "pkey": "011629",
: "oldpkey": "005829",
: "post": "200",
: "all": "COFFEE,WiFi,oneice",
: "road": "仁三路",
: "twoice": null
: 看起来就是我们要的资料没错,接着我用同样方式去找seven他们的查询系统
: 他们的更隐密,我找不到类似全家的这种方式可以抓他们的资料
: 只有一个emap开头的,但是后面的参数是时间,里面的值是县市
: 我就再也没找到里面有值的档案了,请问C大这种的也parsing的了吗?
: 感谢您的回复
每个网站写法都不一样,这个就要慢慢找怎样爬了
像是全家在header上加referer,我也是第一次看到(摊手
多爬几个网站累积经验囉(摊手
至于seven的网站一样可以在https://emap.pcsc.com.tw按下搜寻后
可以在network看到Request URL: https://emap.pcsc.com.tw/EMapSDK.aspx
从Form Data可以看到他有SearchStore这个api,然后下query字串就有xml档案了
如图所示:http://i.imgur.com/WJt3eR8.png
借用了全家的全国乡镇位置去做查询 (你可以另外去找网页找全国乡镇,借全家比较慢)
程式:http://pastebin.com/HZimmj1X
档案下载连结:
http://www.mediafire.com/download/gbova5bl29h9owb/sevenElevenStoreLoc.csv
部分结果:
POIID POIName X Y Telno
<chr> <chr> <chr> <chr> <chr>
1 15886 千成 121522903 25043751 (02)23577481
2 11081 千翔 121516971 25045748 (02)23123025
3 13639 大永博 121511644.363883 25043153.9228778 (02)23826912
4 16133 中航 121522538 25042552 (02)23278931
5 99156 中华电 121523275 25036515 (02)33433607
6 12179 中爱 121520249 25033082 (02)23415461
7 93291 民乐 121510506 25045116 (02)23122424
8 12830 丹阳 121525546 25039050 (02)23516914
9 13529 仁金 121528948 25038452 (02)23583428
10 12786 北高铁 121519384.869613 25047133.4366581 (02)23149940