静态网页爬虫教程(2)链接和标题的提取

初战告捷,我们继续下一步,来获取网页中的标题和超链接。
观察一下,第一篇文章是这样的:
在这里插入图片描述
这篇文章的标题和超链接信息在我们返回的文本中是这样的:
在这里插入图片描述
上面的表示是超链接的内容,而下面的则是表示是标题大小为4号字体 ,注意它们的标签。
这个网站比较简单,它的文章标题直接用"<h4>“括起来了,所以直接用”<h4>"就可以搜索到所有标题;但链接就不行,因为<a>出现的地方比较多,不是所有的链接都是我们需要的,所以要另外处理。
从返回的文本中提取内容可以使用正则表达式,需要引入re包,利用findall函数来查找匹配的内容。
先提取这一页所有的文章标题,我们采用非贪婪匹配:

#引入requests包
import requests
#设定我们要爬取的内容,全部是企业环境信息披露下的文章,先找到其中第一篇文章
url=
### 如何构建静态网页爬虫 #### 静态网页爬虫基础知识 静态网页是指页面上的内容不会因用户的交互而改变,其HTML结构可以直接由服务器返回给客户端。因此,对于这类网站,可以通过发送HTTP请求并解析响应的内容提取所需的数据[^1]。 #### 使用Python进行静态网页爬虫的构建 Python提供了多种库用于构建静态网页爬虫,其中最常用的是`requests``BeautifulSoup`组合。以下是具体的方法: - **Requests库**: 这是一个简单易用的HTTP库,用来向目标网站发起GET/POST请求,并获取相应的HTML文档。 ```python import requests url = 'http://example.com' response = requests.get(url) html_content = response.text ``` - **BeautifulSoup库**: BeautifulSoup是专门设计用来从HTML或XML文件中提取数据的一个库。它能创建一个解析树,从而方便地查找、导航以及修改HTML标签[^3]。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') titles = soup.find_all('h1') # 查找所有的<h1>标签 for title in titles: print(title.text.strip()) ``` 以上代码片段展示了如何利用这两个库抓取网页中的标题信息。 #### 处理分页其他复杂情况 当面对多页或者更复杂的网站布局时,可能还需要考虑额外的因素,比如URL参数的变化规律、翻页按钮的选择器路径等。这通常涉及到编写循环逻辑以遍历每一页链接,并重复执行上述过程。 #### 合法性道德规范 无论何时开展任何形式的数据收集活动之前,请务必确认自己已经了解并且遵循了目标站点的服务条款及相关法律法规。只有这样才能够保证整个操作流程既合法又合乎伦理标准。 ```python import time from random import randint for page_num in range(1, total_pages + 1): current_url = base_url.format(page=page_num) resp = requests.get(current_url) parse_and_save_data(resp.content) sleep_time = randint(1, 5) # 设置随机等待时间防止被封禁IP地址 time.sleep(sleep_time) ``` 此脚本示范了一个简单的分页处理方式,同时加入了合理的延迟间隔以防过频访问引起对方反感甚至封锁我们的IP地址。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值