小编最近刚开始上手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后还是可以爬到的,就说明百度针对国内做了反爬,国外没做,所以大家要深刻理解一下!!