网页的基本抓取
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,这个网页就是我们抓取的网页,我们点选这个网页。

图片1
我们能看到他的请求方法就是get,呼应了我们的爬虫请求方法,我们做的爬虫其实就是要模拟浏览器要做的事情。
接下来我们从网页源码中,把网页的列表提取出来。
小问题:如果我们把爬虫的网址写错了会怎样?
我们在抓取的过程中有可能会出错,那么output.html这个文件的状态码就会提示404或者其他状态,我们如何避免这个状况呢?首先我们看图1、我们看状态码:状态码是200:如果网址我们写错,那么状态码应该就是其他302,或者404等等,反正不会是200。

图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('没有抓到网页')