利用requests库和Beautiful库实现网页链接提取
一、引入库函数
import requests
from bs4 import BeautifulSoup
二、获取网页
def webGet(url): #获取网页源代码
try:
r = requests.get(url)
r.raise_for_status() #检测网页是否访问成功,否则抛出异常
r.encoding = r.apparent_encoding #将实际的编码方式赋值给从header中猜测的编码方式
s = r.text #将对象r转换为文本格式
except:
s = "error"
return s
三、解析网页
def soupGet(demo):
return BeautifulSoup(demo,"html.parser") #解析网页
四、提取网页链接
def soupurlGet(soup):
urls = []
try:
'''soup.find_all返回的只一个列表类型,列表内的元素为字典'''
for link in soup.find_all('a'): #查找soup中所有的 a 标签
if "http" in link.get("href"): #从字典中提取去键为“href”的值,并判断是否具有"http",用于筛除无效链接
urls.append(link.get("href")) #将得到的链接存放到链接列表urls中
except:
print("")
return urls
五、主函数
url = "https://www.baidu.com"
demo = webGet(url)
soup = soupGet(demo)
urls = soupurlGet(soup)
#使用.name方式获得标签名字
#使用.attrs方法获得标签属性(获得字典)
#print(soup.prettify())
for url in urls:
print(url)