作者jackjenny (痛苦)
看板Python
标题[问题] 爬虫 拆写字串问题
时间Wed Oct 19 22:33:40 2016
各问大大好
小弟新手
最近在用python urllib2 的lxml方式 也就是xpath语法
想爬些资料参考
其中该网页的某html的语段
onclick="
onProductClick(this,{'id':'2-mb-161017-twzh-1.png','name':'台北直飞马尼拉/宿雾
*','creative':'
http://www.airasia.com/cdn/aa-images/zh-TW/main-banner/2-mb-161017-twzh-1.png?sfvrsn=4','position':'Home
page > zh-TW > main banner 2'})"
我想爬到解析"台北直飞马尼拉/宿雾"
但不知道该怎解到那段字?
因为这一大串本身就是个大字串
用了许多方式 split atrip 都没办法切到重点
请问该如何解了?
python 的 scrapy还没试过
等会试试看
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.230.112
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1476887623.A.888.html
1F:→ s860134: 直接 re 後 eval 成 dict 取值阿 10/19 23:56
2F:→ s860134: 反正爬虫就是脏活 能解决都可以啊@@ 10/19 23:57
3F:→ s860134: eval(re.search('{.*}',context).group()).get('name') 10/20 00:05
4F:→ jackjenny: 请问你说是用正则表达式吗? 10/20 00:05
5F:→ s860134: '台北直飞马尼拉/宿雾*' 10/20 00:05
6F:→ jackjenny: 那urllib2 可以解出吗 10/20 00:05
7F:→ s860134: 是,这东西是最万用的字串处理工具 10/20 00:06
8F:→ s860134: what? urllib2? 10/20 00:06
9F:→ jackjenny: python内建urllib2也可以爬虫 10/20 00:07
10F:→ jackjenny: 只是能力如何还在练习 10/20 00:08
11F:→ s860134: urllib 只是帮你取得资料,你问的是後制处理? 10/20 00:09
12F:→ jackjenny: 只熟悉beautiful lxml 10/20 00:09
13F:→ jackjenny: 刚笔误^^ 10/20 00:10
14F:→ jackjenny: 大大说的 万用字串处理 这样有了解Y 10/20 00:10
15F:→ jackjenny: 再去把正则式K熟点 10/20 00:11
16F:→ s860134: 那些也只是把 DOM 结构拆出来,这个东西应该是 js code 10/20 00:11
17F:→ jackjenny: 谢大大ˋ 对阿有猜到JS 字串真多 10/20 00:13
18F:→ jackjenny: 想说lxml好懂理解又强大 没想到还是要靠正则式 10/20 00:14
19F:→ s860134: 并不是说没办法写,是写这东西根本不泛用... 10/20 00:18
20F:→ jackjenny: 非常感谢你 我刚用lxml终於解到那字了 泪 10/20 02:14
21F:→ MOONY135: 正则 或者直接抓class = name下面的值 10/20 09:13
22F:推 shadowjohn: 去头去尾取中间~ 10/20 09:47
23F:推 aweimeow: 把 {} 这一段东西取出来塞 json.decode 呢 XD 10/20 10:26
24F:→ uranusjr: 不行, 它里面用单引号, JSON 规定要双引号 10/20 13:38
25F:→ BigBank: {}里面不就是dictionary了吗 10/20 15:19
26F:→ aweimeow: json.loads(s.replace('\'', '"')) XDD 10/20 17:10
27F:→ aweimeow: 感觉有点脏 10/20 17:10
28F:→ jackjenny: 我是用lxml 一直用split() 取到中间 10/20 22:55
29F:→ uranusjr: 这个要乾净解大概只能跑一个 JavaScript 直译器来 eval 10/21 01:52
30F:→ uranusjr: 不如 regex 硬干拆一拆就算了 10/21 01:52
31F:推 koshi0413: 小弟的作法和原P0一样,re不太懂 10/21 07:31