最新消息: 新版网站上线了!!!

Python3 BeautifulSoup模块(2) : 获取没有class标签且herf为静态格式的a标签(超链)

import urllib
from urllib import request
from bs4 import BeautifulSoup
import re


#获取页面

base_url = "http://www.3qphp.com/php/index.html"
urlb = urllib.request.urlopen(base_url)
cent = urlb.read()


#html.parser器,进行解析

soup = BeautifulSoup(cent,"html.parser")


#通过正则获取静态格式的a标签

slink = soup.find_all("a",href=re.compile(r"\/php\/(.+?)\/(\d+).html"))
#获取下标为0的a标签的所有属性
#print(slink[0].attrs)
#执行结果:{'href': '/php/phpjch/198.html', 'class': ['thumbnail']}


#输出所有a标签(超链)

for link in slink:
        print(link)

结果:

<a class="thumbnail" href="/php/phpjch/198.html"><img alt="php 疑难问题1:本地文件缓存txt不完整" src="/d/file/content/2017/05/5913d2c519e6d.jpg"/></a>

<a href="/php/phpjch/198.html" title="php 疑难问题1:本地文件缓存txt不完整">php 疑难问题1:本地文件缓存txt不完整</a>

<a class="thumbnail" href="/php/phpjch/195.html"><img alt="php redis 多维数组操作" src="/statics/themes/d8/images/thumbnail.png"/></a>

<a href="/php/phpjch/195.html" title="php redis 多维数组操作">php redis 多维数组操作</a>


#输出a标签(超链)中没有class属性的

for link in slink:
    if 'class' not in link.attrs:
        print(link)

结果:

<a href="/php/phpjch/198.html" title="php 疑难问题1:本地文件缓存txt不完整">php 疑难问题1:本地文件缓存txt不完整</a>

<a href="/php/phpjch/195.html" title="php redis 多维数组操作">php redis 多维数组操作</a>


转载请注明:谷谷点程序 » Python3 BeautifulSoup模块(2) : 获取没有class标签且herf为静态格式的a标签(超链)