Python 扒网页数据简单尝试

首先免责声明:

本爬虫代码仅用于Python技术学习与合法研究,使用者需自行确保爬取行为符合所在地区法律法规、目标网站robots协议及服务条款,严禁抓取个人隐私、受版权保护的敏感数据,不得高频请求干扰网站正常运行。因不当使用产生的所有法律责任与后果,均由使用者本人全部承担,代码提供方不承担任何连带责任。

0.假定需求:

扒自己的博客首页的博客列表第一页的数据

https://zhaoxinghai.blog.csdn.net

1.准备工作:安装要用到的两个三方库

用cmd命令行执行以下命令进行安装。

如果提示pip命令无效的话,看这篇文章安装一下pip:Python pip安装-CSDN博客

复制代码
pip install requests
pip install beautifulsoup4

2.代码如下:

文件名test.py:

python 复制代码
import requests
from bs4 import BeautifulSoup

url = 'https://zhaoxinghai.blog.csdn.net/'

# 发送HTTP请求
response = requests.get(url)

# 请求是否成功
if response.status_code == 200:
    # 解析HTML内容
    soup = BeautifulSoup(response.text, 'html.parser')

    # # 获取页面数据 div 具体网页要看具体的标签名
    # text = soup.find('div').text
    # print("所有数据:", text)

    list = soup.find_all('div', class_='blog-list-box-top') #子标签类名
    for index,value in enumerate(list):
        # 不推荐使用.string  因为多层级标签或者有空数据的情况会返回None   而.text会返回所有子标签的数据拼接或者空字符串""
        # print(f"博客:{index+1}", value.text)  
        # .text的底层也是用的get_text方法,不过text不可以加参数,而这个可以使用参数,比如去除首尾空格strip=True
        print(f"首页第{index+1}条博客:", value.get_text(strip=True)) 

    # 获取所有链接
    # links = soup.find_all('a')
    # for link in links:
    #     print("链接:", link.get('href'))
else:
    print("请求失败,状态码:", response.status_code)

3.运行结果:

执行命令:py test.py 或者 python test.py

附-提取数据的三个方法的横向对比: