网站策划工具,自己做发小说网站,怎么在网站上打广告,wordpress 用户管理插件文章目录 1. 网页分析2. 获取网页信息2.1 使用默认的urllib.request库2.2 使用requests库1.3 urllib.request 和 requests库区别 2. 更改用户代理3. BeautifulSoup库筛选数据3.1 soup.find()和soup.find_all() 函数 4. 抓取分页链接参考资料 在日常学习和工作中#xff0c;我们… 文章目录 1. 网页分析2. 获取网页信息2.1 使用默认的urllib.request库2.2 使用requests库1.3 urllib.request 和 requests库区别 2. 更改用户代理3. BeautifulSoup库筛选数据3.1 soup.find()和soup.find_all() 函数 4. 抓取分页链接参考资料 在日常学习和工作中我们经常会遇到需要爬取网页内容的需求今天就如何基于Python实现web网页内容爬取进行讲解。
1. 网页分析
用Chrome浏览器打开网页https://car.yiche.com/并进行分析。 F12键打开开发者视图如下所示
在网页页面上想要查看的页面内容处点击 右键-检查(inspect) 开发者模式中会自动选中对应的HTML代码。 分析发现车牌的名字在 name“div”, attrs{“class”: “item-brand”}里面
2. 获取网页信息
在Python中我们可以使用 urllib.request 和 requests 这两个库来发送HTTP请求。这两个库都是用来处理URLs的但是有一些区别。
2.1 使用默认的urllib.request库
urllib.request是Python标准库中的一个模块用于处理URLs的打开读取和下载。它提供了一个简单的接口来发送HTTP请求并可以处理响应数据。
import urllib.request
from bs4 import BeautifulSoupurl https://car.yiche.com/
page urllib.request.urlopen(url)
soup BeautifulSoup(page, html.parser)
result_list []# 筛选数据
tag_list soup.find_all(namediv, 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库可以更方便地发送各种类型的请求如GETPOST等并可以设置请求头传递参数等。
首先在环境中安装 requests 库命令如下
pip install requestsfrom bs4 import BeautifulSoup
import requestsurl https://car.yiche.com/
req requests.get(urlurl)
soup BeautifulSoup(req.content, html.parser)
result_list []# 筛选数据
tag_list soup.find_all(namediv, 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北汽制造, 北京汽车, 布加迪, 博速, 巴菲特, 霸王龙, 奔驰卡车,.......]1.3 urllib.request 和 requests库区别
urllib.request 和 requests 这两个库的主要区别如下
urllib.request是Python的标准库而requests是第三方库需要额外安装。urllib.request是比较底层的库需要手动处理请求和响应而requests提供了更高级的API简化了请求和响应的处理。requests库更加简洁和易于使用并提供了更多的功能如自动处理重定向会话管理等。
参考资料python urllib.request和request的区别
2. 更改用户代理
在使用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(urlurl, headersagent)3. BeautifulSoup库筛选数据
BeautifulSoup库是一种HTML解析库可以将HTML文档解析成Python对象使得开发者可以方便地从HTML文档中提取数据。
首先需要安装 BeautifulSoup 库。
pip install BeautifulSoup43.1 soup.find()和soup.find_all() 函数
Python中bs4的soup.find()和soup.find_all()用法
4. 抓取分页链接
参考资料
Python中bs4的soup.find()和soup.find_all()用法 使用Python进行网页抓取