Python爬虫获取某个网页所有的a标签中的超链接网址

如果我们想要使用Python获取某个网页中所有a标签中的超链接网址,应该怎么做呢?

  1. 安装Python

下载地址:https://www.python.org/downloads/

可能唯一困惑的是下载哪个版本,看图解答你的疑惑
在这里插入图片描述
2.安装BeautifulSoup
管理员身份运行命令行,然后命令行中输入以下命令:

pip install beautifulsoup4

3.爬虫核心代码如下:

# -*- coding:utf-8 -*-
# python 3.7
#引入系统类库
import sys
# 使用文档解析类库
from bs4 import BeautifulSoup
# 使用网络请求类库
import urllib.request
# 输入网址
html_doc = "http://www.discuz.net/forum.php"
if len(sys.argv)>1:
   website=sys.argv[1]
   if(website is not None):
        html_doc= sys.argv[1]
# 获取请求
req = urllib.request.Request(html_doc)
# 打开页面
webpage = urllib.request.urlopen(req)
# 读取页面内容
html = webpage.read()
# 解析成文档对象
soup = BeautifulSoup(html, 'html.parser')   #文档对象
# 非法URL 1
invalidLink1='#'
# 非法URL 2
invalidLink2='javascript:void(0)'
# 集合
result=set()
# 计数器
mycount=0
#查找文档中所有a标签
for k in soup.find_all('a'):
    #print(k)
    #查找href标签
    link=k.get('href')
    # 过滤没找到的
    if(link is not None):
          #过滤非法链接
          if link==invalidLink1:
            pass
          elif link==invalidLink2:
            pass
          elif link.find("javascript:")!=-1:
            pass
          else:
            mycount=mycount+1
            #print(mycount,link)
            result.add(link)
#print("打印超链接个数:",mycount)
#print("打印超链接列表",result)
f = open(r'result.txt','w',encoding='utf-8')  #文件路径、操作模式、编码  # r''
for a in result:
    f.write(a+"\n")
f.close()
print("\r\n扫描结果已写入到result.txt文件中\r\n")

用法一:

默认请求代码中写入的网址,将网址中所有的a href 标签执向的URL记录下来

python SmartWebCrawler.py 

用法二:

命令行输入网址,将网址中所有的a href 标签执向的URL记录下来

python SmartWebCrawler.py http://www.runoob.com/

源码下载

技术宅星云 CSDN认证博客专家 Java MySQL Redis
技术宅星云(网名),英文名fairy,先后曾在惠普,北京中国航信工作, 目前担任北京蛙跳科技有限公司后端高级开发工程师,负责公司短视频App应用后台,擅长JAVA后端技术,CSDN博客专家。
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 59.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值