01:快速入门爬虫

news/2024/7/19 11:34:45 标签: 爬虫, python

1.引导

1.Robots协议

Robots协议(爬虫协议)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。该协议是国际互联网界通行的道德规范,虽然没有写入法律,但是每一个爬虫都应该遵守这项协议。

2.爬虫的流程

流程图

请添加图片描述

(1)获取网页

获取网页就是给一个网址发送请求,该网址会返回整个网页的数据

常用技术

获取网页的基础技术:requests、urllib和selenium

获取网页的进阶技术:多进程多线程抓取(8)、登录抓取、突破IP封禁和使用服务器抓取

(2)解析网页(提取数据)

解析网页就是从获取的整个网页的数据中提取想要的数据

常用技术

解析网页的基础技术:re正则表达式、BeautifulSoup和lxml

解析网页的进阶技术:解决中文乱码

(3)存储数据

存储数据也很容易理解,就是把数据存储下来。我们可以存储在csv中,也可以存储在数据库中

常用技术

存储数据的基础技术:存入txt文件和存入csv文件

存储数据的进阶技术:存入MySQL数据库和MongoDB数据库

2.环境安装

(1)Anaconda

(2)pycharm

3.入门级案例

[学习HTML的网站]http://www.w3school.com.cn/html/index.asp

Python 100试题l

爬虫学习测试网站

如此在浏览器上面查找我们想要的元素

第一步:打开浏览器,跳转到指定的网页,然后点击鼠标右键

请添加图片描述

点击小箭头后,会自动跳转到我们想要的内容上,并且显示标签

请添加图片描述

python">#*******************************************************#
# 导包:从bs4中导入BeautifulSoup
#*******************************************************#
import requests
from bs4 import BeautifulSoup
#*******************************************************#
#  link是我们想要获取的网页链接
#  这个链接可换成我们想要获取的网页链接
#*******************************************************#
link = "http://www.santostang.com/"
#*******************************************************#
#  headers是定义的浏览器的请求头,伪装成浏览器
#  一般是固定的,不要去改变它
#*******************************************************#
headers = {"User-Agent": "Mozilla/5.0 (WIindows; U; Windows NT 6.1;en-US; rv:1.9.1.6)Gecko/20100101 Firefox/3.5.6"}
#*******************************************************#
#####  第一步:请求网页
#*******************************************************#
r = requests.get(link, headers=headers)
print(f"获取网页的html网页内容如下:\n{r.text}")
#*******************************************************#
#####  第二步:解析网页
#   BeautifulSoup会将获取的html文档代码转换成soup对象
#   然后利用soup对象查找我们想要的指定元素
#*******************************************************#
soup = BeautifulSoup(r.text, 'html.parser')
#*******************************************************#
#    利用soup对象查找指定的元素
#    soup.find("h1", class_="post-title").a.text.strip()的意思是,找到第一篇文章标题
#    定位到class是"post-title"的h1元素,提取a元素,提取a元素里面的字符串,strip()去除左右空格
#*******************************************************#
title = soup.find("h1",class_="post-title").a.text.strip()
#*******************************************************#
# 输出一下自己提取的结果,看是否提取到
#*******************************************************#
print(title)
#*******************************************************#
#####  第三步:保存数据,为txt
#*******************************************************#
with open("results.txt", "a+") as f:
    f.write(title + "\n")

http://www.niftyadmin.cn/n/401051.html

相关文章

【vulnhub靶场】MATRIX-BREAKOUT: 2 MORPHEUS

文章目录 描述:一、开启靶机信息收集二层发现三层探测信息整理:初步攻击basic爆破:已知漏洞利用文件上传 后渗透测试后渗透测试 描述: 这是《黑客帝国》系列的第二部,副标题是《沉睡魔咒:1》。它的主题是回到第一部《…

ActiveReportsJS 4.0.2 Crack ActiveReportsJS New

ActiveReportsJS - 高级 JavaScript 报告解决方案 ActiveReportsJS 是一个强大的 Web 应用程序报告工具,它允许开发人员和报告作者轻松地在他们的应用程序中设计和显示报告。凭借广泛的功能,例如向下钻取、运行时数据过滤和参数驱动的报告,以…

ADAS方案的简单比较

ADAS方案的简单比较 1 概述2 厂商Tesla硬件布局网络基础结构:HydraNet多头网络 NVIDIA百度(Apollo)版本历史硬件布局软件框架各版本框架 WaymoVolvo-Uber 3 芯片4 其他from [最全自动驾驶技术架构和综述](https://blog.csdn.net/buptgshengod…

chatgpt赋能python:Python如何更改?

Python如何更改? 如果您想成为一名成功的Python程序员,那么您需要知道如何更改Python代码。在这篇文章中,我们将介绍Python如何更改,并提供一些实用的技巧和建议来使您的编码更加高效和有用。 什么是Python? Python…

【JUC基础】15. Future模式

目录 1、前言 2、什么是Future 2.1、传统程序调用 3、JDK中的Future 3.1、Future相关API 3.2、FutureTask 3.2.1、FutureTask实现 3.2.2、FutureTask相关API 3.3、CompletableFuture 3.3.1、thenApply 3.3.2、异步任务编排之thenCompose() 3.3.3、异步任务编排之th…

FusionCharts Suite XT 3.20.X Crack

3.20版# 2023年3月24日 新功能 FusionCharts 3.20版本引入了一种新方法_changeXAxisCordinates,它允许用户自动更改x轴,使其在图例或数据交互时居中对齐。 FusionCharts 3.20版本更新了Angular集成,支持Angular版本14和15。 FusionChart…

RISC-V学习基础(六)

原子指令 RV32A有两种类型的原子操作: 内存原子操作(AMO)加载保留/条件存储(load reserved/store conditional) 图6.1是RV32A扩展指令集的示意图: 图6.2列出了它们的操作码和指令格式 AMO(at…

CG平台实验——逻辑回归

文章目录 练习2:逻辑回归介绍1 Logistic回归1.1 数据可视化1.2 实现1.2.1 Sigmoid函数1.2.2 代价函数和梯度1.2.2.1 代价函数1.2.2.2 梯度下降 1.2.3 寻找最优参数1.2.4 评估逻辑回归 2 正则化逻辑回归2.1 数据可视化2.2 特征映射2.3 代价函数和梯度 2.4 寻找最优参…