全站的自我修养 ———— python爬取一个网站上的所有链接(beautifulsoup4)

本文介绍了如何在Mac和Windows系统上安装Python和pip,创建并激活虚拟环境,以及使用BeautifulSoup4进行基本的网页抓取。作者通过实例演示了如何抓取新浪网的链接,并简要讨论了反爬机制,强调了在某些网站如百度遇到反爬时可能需要采取的措施。
摘要由CSDN通过智能技术生成

小编最近刚开始上手python,通过beautifulsoup4资源库咱们一起来学习一下简单的爬虫

一、准备

1、下载python
2、准备好一个资源管理工具,这里小编用的是pip

mac本

建议大家使用homebrew下载,会便利很多,如果homebrew安装不上,建议大家去官网看教程下载,这里小编给大家提供一下通过homebrew安装的教程:

brew install python
brew install pip

/opt/homebrew/bin/python3 --version ----> 查看是否安装成功 --->出现对应的Python版本

ln -s /opt/homebrew/bin/python3 /usr/local/bin/python
如果出现ln: /usr/local/bin/python: No such file or directory ---->没有这个目录
 ----->sudo mkdir -p /usr/local/bin
 -------> sudo ln -s /opt/homebrew/bin/python3 /usr/local/bin/python
 
现在大家python --version就可以出现python的homebrew下载的版本了

 // 下面配置pip
 
pip3 --version 会出现 pip所在的目录和版本

window本

(由于小编是mac本,不太清楚window的下载的简单操作,通常是直接去官网下载,环境部署请大家多多搜索一下)

二、虚拟仓库初始化

很多语言都会有虚拟仓库来存放外部引入进来的资源,python也不例外,也需要首先建立虚拟仓库来存储pip引入进来的包

1、cd 到python文件下的目录

2、python -m venv myenv  ---->使用虚拟仓库:创建一个Python虚拟环境,并在该环境中安装所需的包。

3、source myenv/bin/activate ----->然后激活虚拟仓库

在这里插入图片描述

三、用pip工具下载资源

pip install requests beautifulsoup4

四、代码片段

这里咱们就用咱们熟悉的新浪网来测试一下!!

# 引入requests模块
import requests

# 引入BeautifulSoup资源库
from bs4 import BeautifulSoup


# 定义方法
def getLinks(url):

    # response 对象包含了从服务器接收到的所有响应信息,包括响应状态码、响应头和响应正文等
    response = requests.get(url)
    # 这里创建了一个BeautifulSoup对象,response.content是获取到的response的html,
    # "html.parser"是解析html的解析器
    # soup 就是被解析后的html对象
    soup = BeautifulSoup(response.content, "html.parser")
    # 所有的地址
    links = []
    # 查询所有a标签的中的href,并且在href中寻找那些以http开头的地址
    # 然后将过滤出来的href挨个加入links里面
    for link in soup.find_all("a"):
        href = link.get("href")
        if href and href.startswith("http"):
            links.append(href)
    # 返回地址对象
    return links


# 这是一个特殊的条件判断语句,用于判断当前脚本是否作为主程序执行
if __name__ == "__main__":
    # 选择百度的地址传给getLinks
    
    target_url = "https://www.sina.com.cn/"
    links = getLinks(target_url)
    
    # 打印link里面每一个对象
    for link in links:
        print(link)

五、成果展示

在这里插入图片描述

6、反爬理解

有爬虫就一定会有反爬,所以有的网站是做了反爬的,比如百度,如果爬的是百度,你是爬不到任何链接的,但是小编开了vpn后还是可以爬到的,就说明百度针对国内做了反爬,国外没做,所以大家要深刻理解一下!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值