前序
最近想起来CSDN,便坚持着分享一些近期的实践吧
今天开篇前,分享一句话
心之所安,便是归处
爬虫分享
言归正传,下面谈一谈爬虫的信息
爬虫是一种自动化的程序,它模拟用户的行为,对网页发出请求,自动化地获取我们所需要的信息,对于信息检索十分重要,也比较便利。
它的步骤大概如下:
- 发送网络请求。笔者通常借助Python的库使用request实现,请求可以是POST/GET,视需求而定;
- 网页解析。获取到网页的内容后,需要对HTML的内容进行解析,笔者通常是利用BeautifulSoup来从网页中提取数据;
- 数据提取。完成解析后,我们需要对信息进行分析,检索出我们需要的信息,达到爬虫的目的。可以通过找到一些特定的标签和类,来提取相关的信息(可支持的有:图像、链接、文本等)
- 数据存储。当正确地处理好获取的信息后,要及时的将信息存储到计算机当中,避免丢失。为了方便起见,我们通常将其存入数据库当中。笔者对相关信息会下载或者存储到MySQL数据库当中;
- 动态变换网络链接。可以动态跟踪网页链接的变化,进而通过迭代递归实现多种信息的爬取;
- 反爬虫机制。为了防止过度访问,网页会做出限制。可通过设置请求头或者使用代理IP实现。
下面是一个爬虫的实例,笔者通过爬虫实现了文本信息的获取
import requests
from bs4 import BeautifulSoup
# 定义要爬取的新闻网站的URL
url = "https://www.example.com/news"
# 添加伪装的请求头信息
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Referer": "https://www.example.com/",
"Accept-Language": "en-US,en;q=0.9",
}
# 发送带有伪装请求头的HTTP请求获取网页内容
response = requests.get(url, headers=headers)
# 使用BeautifulSoup解析网页内容
soup = BeautifulSoup(response.content, "html.parser")
# 找到新闻标题和链接的HTML元素
news_elements = soup.find_all("a", class_="news-title")
# 遍历每个新闻元素并提取标题和链接
for news_element in news_elements:
title = news_element.text
link = news_element["href"]
# 发送带有伪装请求头的HTTP请求获取新闻内容页的网页内容
news_response = requests.get(link, headers=headers)
# 使用BeautifulSoup解析新闻内容页的网页内容
news_soup = BeautifulSoup(news_response.content, "html.parser")
# 找到新闻内容的HTML元素
content_element = news_soup.find("div", class_="news-content")
# 提取新闻内容
content = content_element.text
# 打印新闻标题和内容
print("标题:", title)
print("内容:", content)
上述代码有完备的解释,如有疑问,欢迎在评论区留言
需要详细的爬虫代码见资源当中
结束语
本文的分享到这就结束啦,如果有其他需求,欢迎评论私信
心之所安,便是归处
长路漫漫,望不负此生!