Python 板


LINE

小弟我在网页抓资料时发现假如出现过的文字,再次出现时似乎无法被辨认。 import urllib from bs4 import BeautifulSoup #url ='http://mops.twse.com.tw/mops/web/ajax_t164sb04?encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&TYPEK=all&isnew=false&co_id=2330&year=102&season=01' url='http://mops.twse.com.tw/server-java/t164sb01?step=1&CO_ID=2330&SYEAR=2013&SSEASON=1&REPORT_ID=C' response = urllib.urlopen(url) html= response.read() sp = BeautifulSoup(html,"lxml") #cp950 trs=sp.find_all('tr',attrs={'class':["odd","even"]}) for tr in trs: #只要前面的字有重复就会认不出来 tds=tr.find_all('td') for td in tds: if (td.get_text().strip().encode('utf8')=="营业收入合计"): if (tds[1].get_text().strip()!=''): print('Earning','102','1',tds[1].get_text().strip().encode('utf8')) print('Earning','102','1',tds[2].get_text().strip().encode('utf8')) if (td.get_text().strip().encode('utf8')=="基本每股盈余合计"): if (tds[1].get_text().strip()!=''): print('EPS','102','1',tds[1].get_text().strip().encode('utf8')) print('EPS','102','1',tds[2].get_text().strip().encode('utf8')) 程式在抓取第一个营业收入合计时完全没有问题,而在抓取基本每股盈余时就完全没反应 而由於之前已经有出现过"基本每股盈余"这个字串(不过少了合计),请问这部分是程式的Bug 还是我的程式码本身就有问题? 还请各位赐教。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.205.229
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1467871646.A.402.html
1F:推 s860134: tds index写死? 07/07 19:13
2F:→ ansem: 写死的意思是?? 07/07 22:57
3F:→ s860134: 我误解了,实际跑下去应该是网页中 tag 判断有问题 07/08 08:04
4F:→ s860134: 把 'lxml' parser 换成 'html.parser' 会好一点 07/08 08:05
5F:→ s860134: 但是 DOM 的结构感觉还是和预想的有差距 07/08 08:06
6F:→ s860134: print(sp.find_all('table')[1]) 看一下尾端内容 07/08 08:07
7F:→ s860134: 原本的 parser 爬得并不完整 07/08 08:07
8F:→ s860134: 程式码中的 sp 就已经没抓到 "净利(损)归属於:"後的 07/08 10:08
9F:→ s860134: 所有 <tr> tag 所以你在抓的时候抓不到 07/08 10:09
10F:→ s860134: 可能 bs 本身有问题,直接拿 lxml.etree 来做是可以的 07/08 10:27
11F:→ s860134: https://goo.gl/fGJCYt 这是改写过的版本 07/08 10:28
12F:→ ansem: 其实当初我也发现BS似乎没有抓到,但是以为发现的规则是有 07/08 11:40
13F:→ ansem: 出现过的字无法重复判定,有点像是搜寻时假如重复出现两个 07/08 11:41
14F:→ ansem: 相同字串时就会让BS无法读取,总之感谢大大罗。 07/08 11:42
15F:→ buganini: 把lxml换成html5lib 容错能力会好一点 07/12 14:01







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP