基于Python实现web网页内容爬取的方法

 更新时间:2024年12月25日 17:01:19   作者:酒酿小圆子~  
在日常学习和工作中,我们经常会遇到需要爬取网页内容的需求,今天就如何基于Python实现web网页内容爬取进行讲解,感兴趣的朋友一起看看吧

在日常学习和工作中,我们经常会遇到需要爬取网页内容的需求,今天就如何基于Python实现web网页内容爬取进行讲解。

1. 网页分析

用Chrome浏览器打开网页(https://car.yiche.com/)并进行分析。

F12键打开开发者视图,如下所示:

在网页页面上想要查看的页面内容处,点击 右键->检查(inspect) ,开发者模式中会自动选中对应的HTML代码。

分析发现车牌的名字在 name=“div”, attrs={“class”: “item-brand”}里面

2. 获取网页信息

在Python中,我们可以使用 urllib.requestrequests 这两个库来发送HTTP请求。这两个库都是用来处理URLs的,但是有一些区别。

2.1 使用默认的urllib.request库

urllib.request是Python标准库中的一个模块,用于处理URLs的打开,读取和下载。它提供了一个简单的接口来发送HTTP请求,并可以处理响应数据。

import urllib.request
from bs4 import BeautifulSoup
url = "https://car.yiche.com/"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")
result_list = []
# 筛选数据
tag_list = soup.find_all(name="div", attrs={"class": "item-brand"})
for tag in tag_list:
    result_list.append(tag.attrs["data-name"])
print(result_list)

2.2 使用requests库

requests是一个第三方库,它提供了更简洁的API来发送HTTP请求,并处理响应数据。使用requests库可以更方便地发送各种类型的请求,如GET,POST等,并可以设置请求头,传递参数等。

首先在环境中安装 requests 库,命令如下:

pip install requests
from bs4 import BeautifulSoup
import requests
url = "https://car.yiche.com/"
req = requests.get(url=url)
soup = BeautifulSoup(req.content, "html.parser")
result_list = []
# 筛选数据
tag_list = soup.find_all(name="div", attrs={"class": "item-brand"})
for tag in tag_list:
    result_list.append(tag.attrs["data-name"])
print(result_list)

输出如下:

['奥迪', '埃安', 'AITO', '阿维塔', '阿斯顿·马丁', '阿尔法·罗密欧', 'AUDI', '阿莫迪罗', 'AUXUN傲旋', '爱驰', 'Apollo', 'ALPINA', 'Abarth', 'ABT', '阿尔特', '安凯客车', 'Aurus', 'Arash', '安徽猎豹', 'ATOM', '艾康尼克', 'ASKA', 'Alef', 'APEX', 'Agile Automotive', 'ATS', 'AKXY2', 'Alpine', 'Aspark', 'Aviar', 'AURA', 'AIM', 'Ariel', 'Aria', 'Atlis', 'Alpha Motor', 'AFEELA', 'AEHRA', 'AC Schnitzer', 'Adria', 'AZNOM', 'AEV ROBOTICS', '比亚迪', '奔驰', '本田', '宝马', '别克', '保时捷', '北京', '奔腾', '标致', '宝骏', '宾利', 'BAW北汽制造', '北京汽车', '布加迪', '博速', '巴菲特', '霸王龙', '奔驰卡车',.......]

2.3 urllib.request 和 requests库区别

urllib.requestrequests 这两个库的主要区别如下:

  • urllib.request是Python的标准库,而requests是第三方库,需要额外安装。
  • urllib.request是比较底层的库,需要手动处理请求和响应,而requests提供了更高级的API,简化了请求和响应的处理。
  • requests库更加简洁和易于使用,并提供了更多的功能,如自动处理重定向,会话管理等。

参考资料:python urllib.request和request的区别

3. 更改用户代理

在使用Python进行网页爬取时,许多网站会通过检查HTTP请求头中的User-Agent字段来识别发出请求的客户端类型。设置用户代理(User-Agent)是为了模仿真实浏览器的请求,避免被网站识别为自动化工具而遭封锁,同时确保获取完整的网页内容,并遵守网站的访问规则。

agent = {'User-Agent': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit / 531.21.10(KHTML, likeGecko) Mobile / 7B405'}
req = requests.get(url=url, headers=agent)

4. BeautifulSoup库筛选数据

BeautifulSoup库是一种HTML解析库,可以将HTML文档解析成Python对象,使得开发者可以方便地从HTML文档中提取数据。

首先需要安装 BeautifulSoup 库。

pip install BeautifulSoup4

4.1 soup.find()和soup.find_all() 函数

soup.find()和soup.find_all() 函数可以用来查找网页中特定的元素,区别在于:

  • soup.find()查找到一次即停止
  • soup.find_all() 可以查找到所有记录

soup.find()和soup.find_all() 函数的使用方式可参考:Python中bs4的soup.find()和soup.find_all()用法

参考资料

到此这篇关于基于Python实现web网页内容爬取的文章就介绍到这了,更多相关Python web网页内容爬取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现图形用户界面计算器

    Python实现图形用户界面计算器

    这篇文章主要为大家详细介绍了Python实现图形用户界面计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Python使用Plotly绘制常见5种动态交互式图表

    Python使用Plotly绘制常见5种动态交互式图表

    Plotly是一个非常强大的开源数据可视化框架,它通过构建基于 HTML 的交互式图表来显示信息,可创建各种形式的精美图表。本文将用Plotly库绘制常见的五种动态交互式图表,感兴趣的可以学习一下
    2022-03-03
  • Python创建普通菜单示例【基于win32ui模块】

    Python创建普通菜单示例【基于win32ui模块】

    这篇文章主要介绍了Python创建普通菜单,结合实例形式分析了Python基于win32ui模块创建普通菜单及添加菜单项的相关操作技巧,并附带说明了win32ui模块的安装命令,需要的朋友可以参考下
    2018-05-05
  • Python 解释器的站点配置和模块搜索路径详解

    Python 解释器的站点配置和模块搜索路径详解

    Python 解释器的站点配置是指一组配置和路径设置,用于支持特定于站点的定制和扩展,这些配置和路径信息由 Python 的内置 site 模块提供,这篇文章主要介绍了Python 解释器的站点配置和模块搜索路径详解,需要的朋友可以参考下
    2022-01-01
  • Django入门使用示例

    Django入门使用示例

    这篇文章主要介绍了Django入门使用示例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python Matplotlib绘制动画的代码详解

    Python Matplotlib绘制动画的代码详解

    使用matplotlib可以很容易地创建动画框架。在本文中我们就将利用Matplotlib制作几个简单的动画,文中的示例代码讲讲详细,感兴趣的可以了解下
    2022-05-05
  • Python入门案例之找出文件中出现次数最多的10个单词

    Python入门案例之找出文件中出现次数最多的10个单词

    这篇文章主要为大家带来一个简单的Python入门案例——找出文件中出现次数最多的10个单词,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-02-02
  • 使用Python读取和写入JSON文件的代码示例

    使用Python读取和写入JSON文件的代码示例

    在Python开发中,处理JSON数据是非常常见的任务,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,本文给大家介绍了如何使用 Python 读取和写入 JSON 文件,需要的朋友可以参考下
    2024-12-12
  • 如何用Python进行回归分析与相关分析

    如何用Python进行回归分析与相关分析

    这篇文章主要介绍了如何用Python进行回归分析与相关分析,这两部分内容会放在一起讲解,文中提供了解决思路以及部分实现代码,需要的朋友可以参考下
    2023-03-03
  • django云端留言板实例详解

    django云端留言板实例详解

    这篇文章主要介绍了django云端留言板实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07

最新评论