请问Beautifulsoup抓取select标签中option文本方法是什么,,我要抓取的页面的内容是在
请问Beautifulsoup抓取select标签中option文本方法是什么,,我要抓取的页面的内容是在
我要抓取的页面的内容是在如下标签内的
<script language=javascript>parent.theZNPKT_CJJS1.innerHTML='<select id=T_CJJS1 name=T_CJJS1 style="HEIGHT: 20px;WIDTH:115"><option value=0000258>[0000789]Andrew</option></select>';</script>
我写的代码:
import urllib2from bs4 import BeautifulSoupurl = 'xxx'html = urllib2.urlopen(url)soup = BeautifulSoup(html, from_encoding = 'gbk')option = soup.findAll('option')f = open("out.txt", "w")print >> f, optionf.close()print option
抓取出来的结果全都是 <option value="0000049">[0000049]ANNA</option> 这样的,我想提取 [0000049]ANNA 这个内容怎样做呀?
很多东西都不懂,经过搜索换了一种方法提取出来了。用的是正则的方法:
import urllib2import reurl = 'xxx'html = urllib2.urlopen(url).read()patt = re.compile(r'<option.+?>(.+?)</option>')option = patt.findall(html)f = open("out.txt", "w")for value in option: print value f.writelines(value + '\n')f.close()
option也是个元素,不是属性,你是不是应该写为soup.findAll('select option')呢?我太久没有用BeautifulSoup了,具体的不记得怎么写。
option = soup.findAll('option')
print option.string
你这个用BS还是很好的选择,之时在打印的时候选择.string就可以了。
例如:
soup = BeautifulSoup(html, from_encoding = 'gbk')
option = soup.findAll('option')
print option.string
1.你要抓取的option等内容,很明显,是标签script内部的内容(content/text)
-》 所以没法用BeautifulSoup当做标签(的属性)去抓取
2.想要当做属性处理
一种办法:
在获得你所说的:
<option value="0000049">[0000049]ANNA</option>
后,再去把(用html标签括起来)组合成html,然后再用BeautifulSoup去当做html处理
-> 就可以获得option这个标签了
-> 就可以获得option的string了
3.当然,对于你这样的情况,相对来说,用(你已经用了的)正则,比用bs,效率更高。
4.关于beautifulSoup,可参考:
Python专题教程:BeautifulSoup详解
编橙之家文章,
相关内容
- Python运维方向基本工作内容是什么,python运维工作内容
- Python爬虫完成js页面内容抓取方案是怎么样的,pythonj
- Python字符串之间如何比较,Python字符串比较,远程版本号
- python访问嵌套内数据实现如何定义,python访问嵌套数据
- python ascii格式怎么生成utf-8文件,pythonutf-8,import codec
- Python哪个库可以解析js格式,python解析js格式,我想抓取
- Python判断某个值是是否在典中并反馈key怎么写源码,
- 菜鸟Python网络爬虫网页编码utf-8十六进制问题不解,p
- 学习python从语法到写程序需要多长时间,python需要多长
- Vim编辑器中多出好多空格如何调整,vim编辑器空格调整
评论关闭