BeautifulSoup 提取某个tag标签里面的内容
2018-03-05 14:18
225 查看
用的版本是BeautifulSoup4,用起来的确要比 re 好用一些,不用一个个的去写正则表达式,这样还是挺方便的。比如我要获取高匿代理IP页面上的IP和端口,网址这里:点击打开链接,它的组织方式是这样的,如下图:
IP和端口 tr.td 标签里面,tr有class属性,属性有两种情况的值,对于这点我们可以用正则表达式来匹配下。当提取某一个标签里的具体内容时,可以用bs的 .string属性,注意:用 .string 属性来提取标签里的内容时,该标签应该是只有单个节点的。比如上面的 td 标签那样。下面直接上代码了。[python] view plain copyimport requests
from bs4 import BeautifulSoup
import re
import os.path
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5)'
headers = {'User-Agent': user_agent}
session = requests.session()
page = session.get("http://www.xicidaili.com/nn/1", headers=headers)
soup = BeautifulSoup(page.text,'lxml') #这里没有装lxml的话,把它去掉用默认的就好
#匹配带有class属性的tr标签
taglist = soup.find_all('tr', attrs={'class': re.compile("(odd)|()")})
for trtag in taglist:
tdlist = trtag.find_all('td') #在每个tr标签下,查找所有的td标签
print tdlist[1].string #这里提取IP值
print tdlist[2].string #这里提取端口值
结果如下:[python] view plain copy124.88.67.24
80
61.224.239.71
8080
113.3.78.124
8118
61.227.228.141
8080
222.130.171.58
8118
123.57.190.51
7777
183.61.71.112
8888
120.25.171.183
8080
1.164.146.91
8080
101.201.235.141
8000
121.193.143.249
80
118.180.15.152
8102
124.88.67.19
80
。
。
。
。
。
。
。
IP和端口 tr.td 标签里面,tr有class属性,属性有两种情况的值,对于这点我们可以用正则表达式来匹配下。当提取某一个标签里的具体内容时,可以用bs的 .string属性,注意:用 .string 属性来提取标签里的内容时,该标签应该是只有单个节点的。比如上面的 td 标签那样。下面直接上代码了。[python] view plain copyimport requests
from bs4 import BeautifulSoup
import re
import os.path
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5)'
headers = {'User-Agent': user_agent}
session = requests.session()
page = session.get("http://www.xicidaili.com/nn/1", headers=headers)
soup = BeautifulSoup(page.text,'lxml') #这里没有装lxml的话,把它去掉用默认的就好
#匹配带有class属性的tr标签
taglist = soup.find_all('tr', attrs={'class': re.compile("(odd)|()")})
for trtag in taglist:
tdlist = trtag.find_all('td') #在每个tr标签下,查找所有的td标签
print tdlist[1].string #这里提取IP值
print tdlist[2].string #这里提取端口值
结果如下:[python] view plain copy124.88.67.24
80
61.224.239.71
8080
113.3.78.124
8118
61.227.228.141
8080
222.130.171.58
8118
123.57.190.51
7777
183.61.71.112
8888
120.25.171.183
8080
1.164.146.91
8080
101.201.235.141
8000
121.193.143.249
80
118.180.15.152
8102
124.88.67.19
80
。
。
。
。
。
。
。
相关文章推荐
- BeautifulSoup 提取某个tag标签里面的内容
- DEDE如何提取文章内容里面的第一张图片地址
- 使用struts2的标签,将setAttribute里面的内容直接在页面提取
- BeautifulSoup的Tag提取html内容
- beautifulsoup提取所有<a>标签内容 Python
- Python使用BeautifulSoup提取特定HTML标签内容
- 正则那点事之如何提取字符串中方括号里面的内容
- 提取Word里面的内容
- Learning Python 013 按行读取文件(逐行读取) --- 按行写入文件(逐行写入) --- 实战:从字幕文件中提取字幕内容
- JS提取网页中表格内容,将特定列内的html文本中id,href,onclick属性提取出来
- 做网页,在IE6,正常,但是在IE8里面 母版里面的DIV内容长度现实就颜色出问题 把div的高度设置为:height:auto
- 前面输入框停止输入,下面就即时显示输入框里面的内容
- 在html中,怎么获取当前页面body的高度,body是没有设置高度的,但是里面有内容
- matlab读取txt文件里面的内容并绘图
- windows下将多个文件里面的内容合并成一个一个文件
- POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取
- 手工删除选人控件EntityEditor里面的内容后,取出来的内容还是没变,怎么回事?
- php获取文件夹中所有lrc格式文件,提取lrc文件中内容
- SpringBoot拦截Request修改里面参数内容(HttpServletRequestWrapper)
- 爬虫 提取贴吧楼主发布的内容 beatifulsoup和正则配合