猿问

beautifulsoup 怎样抓取 select 标签里面的 option 的文本?

我要抓取的页面的内容是在如下标签内的
parent.theZNPKT_CJJS1.innerHTML='[0000789]Andrew';
我写的代码:
importurllib2
frombs4importBeautifulSoup
url='xxx'
html=urllib2.urlopen(url)
soup=BeautifulSoup(html,from_encoding='gbk')
option=soup.findAll('option')
f=open("out.txt","w")
print>>f,option
f.close()
printoption
抓取出来的结果全都是[0000049]ANNA这样的,我想提取[0000049]ANNA这个内容怎样做呀?
很多东西都不懂,经过搜索换了一种方法提取出来了。用的是正则的方法:
importurllib2
importre
url='xxx'
html=urllib2.urlopen(url).read()
patt=re.compile(r'(.+?)')
option=patt.findall(html)
f=open("out.txt","w")
forvalueinoption:
printvalue
f.writelines(value+'\n')
f.close()
繁星coding
浏览 2536回答 2
2回答

万千封印

1.你要抓取的option等内容,很明显,是标签script内部的内容(content/text)-》所以没法用BeautifulSoup当做标签(的属性)去抓取2.想要当做属性处理一种办法:在获得你所说的:[0000049]ANNA后,再去把(用html标签括起来)组合成html,然后再用BeautifulSoup去当做html处理->就可以获得option这个标签了->就可以获得option的string了3.当然,对于你这样的情况,相对来说,用(你已经用了的)正则,比用bs,效率更高。4.关于beautifulSoup,可参考:Python专题教程:BeautifulSoup详解

Qyouu

option也是个元素,不是属性,你是不是应该写为soup.findAll('selectoption')呢?我太久没有用BeautifulSoup了,具体的不记得怎么写。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答