网页的基本抓取

时间:2025-10-10 05:48:32  阅读量:  分类:标签:

html解析:beautifulsoup parsel

html基本框架

<!DOCTYPE html>
<html>
<head>
    <title>浏览器标题</title>
</head>
<body>
     <h1>标题</h1>
      <p>内容</p>

</body>
</html>
爬虫:解析html 获取相关标签内的内容。

#安装requests库:

pip install requests

获取网页案例:

import requests
url="https://www.wenzizhan.com/shenghuosuibi/"  #url 变量存储一个网址
response=requests.get(url)              #用requests库获取网址,用response 接收
print(response.text)   #打印网页内容
#这段代码不一定能百分之百运行,因为有可能有的网址拒绝爬取,有的网址觉得你没有写头,觉得你是机器人,但是基本原理就是这样。

把获取的网页写成html:

import requests
url="https://www.wenzizhan.com/shenghuosuibi/"  #url 变量存储一个网址
response=requests.get(url)              #用requests库获取网址,用response 接收
print(response.text)   #打印网页内容
#打开/创建一个output.html文件,,并且以'w'写入方式打开,编码utf8,并且把当前语句重命名为f.
with open('output.html','w',encoding='utf-8') as f:
    f.write(response.text)  #f写入的内容是,response.text.

了解原理:

我们访问这个网址:https://www.wenzizhan.com/shenghuosuibi/  按住F12,选择网络,右侧就会出现。

其中shenghuosuibi,这个网页就是我们抓取的网页,我们点选这个网页。

image.png

图片1

我们能看到他的请求方法就是get,呼应了我们的爬虫请求方法,我们做的爬虫其实就是要模拟浏览器要做的事情。

接下来我们从网页源码中,把网页的列表提取出来。

小问题:如果我们把爬虫的网址写错了会怎样?

我们在抓取的过程中有可能会出错,那么output.html这个文件的状态码就会提示404或者其他状态,我们如何避免这个状况呢?首先我们看图1、我们看状态码:状态码是200:如果网址我们写错,那么状态码应该就是其他302,或者404等等,反正不会是200。

image.png

图2、

接下来我们用if语句来写一个判断状态码是否是200,来判断我们抓取网页是否成功,

import requests
url="https://www.wenzizhan.com/shenghuosuibi/"  #url 变量存储一个网址
response=requests.get(url)              #用requests库获取网址,用response 接收
#打开/创建一个output.html文件,,并且以'w'写入方式打开,编码utf8,并且把当前语句重命名为f.
if response.status_code ==200:  #response.status_code就是判断状态码是否等等200.
    with open('output.html', 'w', encoding='utf-8') as f:
        f.write(response.text)  # f写入的内容是,response.text.
    print('写入成功')
else:
    print('没有抓到网页')