[爬虫]1.1.1网络爬虫的概念

海哥  金牌会员 | 2023-7-21 22:25:30 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

网络爬虫,也称为网页爬虫或者网页蜘蛛,是一种用来自动浏览互联网的网络机器人。它们会按照特定的规则,从网页上获取信息,然后将这些信息保存下来。网络爬虫的名字来源于它们的工作方式,它们就像是在网络上爬行的蜘蛛,通过链接从一个网页爬到另一个网页。
工作原理

网络爬虫的基本工作原理是按照一定的规则,自动地抓取网络信息。大体上,它的工作过程可以分为以下几步:

  • 初始URL: 爬虫开始工作时,我们需要给它一些初始的URL。这些URL就像是爬虫的"种子",提供了爬虫的起点。
  • 发送请求和获取响应: 爬虫会向这些URL发送请求,然后得到网页的响应。这个过程就像是你在浏览器中输入一个网址,然后浏览器显示出网页的过程。
  • 解析网页: 爬虫会解析得到的网页内容,从中提取出我们需要的信息,比如新闻的标题和内容、商品的价格和图片等。
  • 提取链接: 在解析网页的过程中,爬虫还会提取出网页中的链接,然后将这些链接添加到待爬取的URL队列中。
  • 循环爬取: 爬虫会重复上述过程,不断地从URL队列中取出URL,发送请求,获取响应,解析网页,提取信息和链接,直到URL队列为空,或者达到了我们设置的爬取深度。
这就是网络爬虫的基本工作原理。它们就像是在网络上爬行的蜘蛛,通过链接从一个网页爬到另一个网页。
网络爬虫的分类

按照工作方式,网络爬虫可以分为两类:一类是通用网络爬虫,一类是聚焦爬虫。

  • 通用网络爬虫: 通用网络爬虫主要是搜索引擎使用的爬虫,比如Google的Googlebot,它们的目标是尽可能地爬取整个网络。
  • 聚焦爬虫: 聚焦爬虫则是针对特定的任务或者网站进行爬取,比如我们自己编写的爬虫,通常就是聚焦爬虫。
网络爬虫的应用

网络爬虫有很多应用,比如搜索引擎的网页索引,新闻的自动聚合,商品价格的监控等。在数据科学和机器学习领域,网络爬虫也经常被用来收集训练数据。
网络爬虫的例子

这是一个简单的Python网络爬虫的例子,它使用requests库发送请求,使用BeautifulSoup库解析HTML,从Python官方网站上爬取所有PEP的标题。
  1. import requests
  2. from bs4 import BeautifulSoup
  3. url = "https://www.python.org/dev/peps/"
  4. response = requests.get(url)
  5. soup = BeautifulSoup(response.text, 'html.parser')
  6. pep_list = soup.find('table', {"class": "list-table"}).findAll('tr')
  7. for pep in pep_list[1:]:
  8.     number = pep.find('td', {"class": "pep-number"}).text
  9.     title = pep.find('td', {"class": "pep-title"}).text
  10.     print(f'{number}: {title}')
复制代码
请求和响应

在网络爬虫的工作过程中,发送请求和获取响应是非常重要的一步。简单来说,请求就是爬虫向服务器发送一个消息,告诉服务器它想要获取什么信息,响应则是服务器返回的消息,包含了爬虫请求的信息。
HTTP协议是互联网上应用最广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。一个HTTP请求包含三个部分:请求行、请求头部和请求数据。同样,HTTP响应也包含三个部分:状态行、消息报头和响应正文。
在Python中,我们常用的发送HTTP请求的库有requests和urllib,其中requests更为简单易用。
这是一个使用requests发送GET请求的例子:
  1. import requests
  2. response = requests.get('https://www.python.org')
  3. print(response.status_code)  # 打印状态码
  4. print(response.text)  # 打印响应内容
复制代码
网页解析

解析网页是网络爬虫的另一个重要步骤。网页大部分是用HTML语言编写的,HTML是一种标记语言,它的内容由一系列的标签组成。我们可以通过解析HTML,提取出我们需要的信息。
Python中常用的HTML解析库有BeautifulSoup和pyquery等,其中BeautifulSoup更为常用。
这是一个使用BeautifulSoup解析HTML的例子:
  1. from bs4 import BeautifulSoup
  2. html = """
  3. <html>
  4.     <head>
  5.         <title>Test Page</title>
  6.     </head>
  7.     <body>
  8.         <h1>Welcome to the Test Page</h1>
  9.         <p>This is a <a target="_blank" target="_blank" href="https://www.example.com">link</a>.</p>
  10.     </body>
  11. </html>
  12. """
  13. soup = BeautifulSoup(html, 'html.parser')
  14. title = soup.find('title').text
  15. h1 = soup.find('h1').text
  16. link = soup.find('a')['href']
  17. print(f'Title: {title}')
  18. print(f'H1: {h1}')
  19. print(f'Link: {link}')
复制代码
链接提取

链接提取是网络爬虫的一项基本技能。通过提取网页中的链接,网络爬虫可以从一个页面跳转到另一个页面,就像蜘蛛通过丝线在网上移动一样。
在HTML中,链接通常由标签表示,链接的URL通常写在href属性中。我们可以用BeautifulSoup提取出所有的标签,然后读取它们的href属性,就可以得到所有的链接。
这是一个提取链接的例子:
  1. from bs4 import BeautifulSoup
  2. html = """
  3. <html>
  4.     <body>
  5.         <a target="_blank" target="_blank" href="https://www.example.com">Link 1</a>
  6.         <a target="_blank" href="https://www.example2.com">Link 2</a>
  7.         <a target="_blank" href="https://www.example3.com">Link 3</a>
  8.     </body>
  9. </html>
  10. """
  11. soup = BeautifulSoup(html, 'html.parser')
  12. links = soup.findAll('a')
  13. for link in links:
  14.     print(link['href'])
复制代码
这就是网络爬虫的基本概念,它们# 网络爬虫的概念
网络爬虫,也称为网页爬虫或者网页蜘蛛,是一种用来自动浏览互联网的网络机器人。它们会按照特定的规则,从网页上获取信息,然后将这些信息保存下来。网络爬虫的名字来源于它们的工作方式,它们就像是在网络上爬行的蜘蛛,通过链接从一个网页爬到另一个网页。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表