import requests as rq
from bs4 import BeautifulSoup as bs
import re
# rooturl是传的是我需要查询和抓取的一个网址,可以是html js 等
def gethtml(rooturl, encoding="utf-8"):
#默认解码方式utf-8
response = rq.get(rooturl)
response.encoding = encoding
# .text是返回网页的源代码
html = response.text
# print(html)
return html #返回链接的html内容
# 然后将html 传给gethref()方法
def getherf(html):
# 使用BeautifulSoup函数解析传入的html
soup = bs(html, features="lxml")
# 解析后用soup.find_all("a")找所有的a标签
allnode_of_a = soup.find_all("a")
# 遍历a里面的href
result = [_.get("href") for _ in allnode_of_a]
# 输出result
print(result)
return result
request bs4 都需要进行安装 pip install request pip install bs4
BeautifulSoup()函数返回的是一个解析过的对象,相当于把你的html文本做了处理;
调用这个解析过的对象的find_all()方法,即返回一个该html中 所有的a节点组成的列表;
再对表中每一个节点调用get()方法,获得该节点下"herf"标签(键)的所有值,也就是我们的要找“http://”打头的超链接了;
在前端html中 a 标签一般是这样体现的
html = gethtml('XXXX')
这里xxx指的是你爬取内容的网址(某个html 或者某个js)等文件都可以
最后爬出来我写的一个超链接了:
我的代码是参考是原博主的,他写的很详细,也解释的很清楚,建议大家看看原博主的文章
参考原文:
Python爬虫-获得某一链接下的所有超链接_pychram 找出页面中的所有链接元素_ywsdxxzj的博客-CSDN博客