百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python 数据抓取教程:完结篇

off999 2024-11-27 18:49 36 浏览 0 评论

Socket

Socket是一种工具,用于将多个设备连接起来,实现它们之间的数据交流。在这个过程中,会用到一个中介服务器,它负责在设备之间传递信息,但不允许设备之间直接建立联系。

现在,如何使用套接字发出 HTTP 请求?嗯,可以通过打开套接字来完成。让我们通过一个简单的Python代码来理解。

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((“www.google.com", 80))
sock.send(b”GET / HTTP/1.1\r\nHost:www.google.com\r\n\r\n")
response = sock.recv(4096)
sock.close()
print(response.decode())

这段代码分为七个部分,我们将逐一进行详细解析。

  • 首先,我们需要导入套接字库。
  • 接着,我们定义了一个套接字构造函数,它需要两个参数:套接字家族和套接字类型。
  • 然后,我们指定了一个网址,用于建立网络连接。你可以根据需要选择任何有效的网址。
  • 接下来,我们发起了一个 GET 请求。这个请求最初是以普通文本格式存在的,但通过 .send() 方法,我们将其转换为字节格式以便于发送。
  • 作为客户端,我们在这里捕获服务器的响应。我们设置接收的数据量为4096字节,以确保能够获取尽可能多的信息。
  • 一旦从服务器接收到所有数据,我们便关闭了连接,这是完成通信的一个必要环节。
  • 最后,我们打印出了服务器的响应内容。

Urllib3

Urllib3 是 Python 标准库中的一个官方 HTTP 请求库。它之所以被认为是官方的,是因为与 requests 库不同,它是 Python 的核心组成部分。如果你希望减少外部依赖,可以选择使用 urllib3。这个库包括五个主要模块:

  • request — 主要用来打开网络链接。
  • response — 这是 request 模块内部使用的,你通常不需要直接操作。
  • error — 提供了 request 模块所需的错误处理类。
  • parse — 负责将 URL 分解成协议、主机名、端口号、路径等组成部分。
  • robotparser — 用于解析 robots.txt 文件,以了解网站的爬虫协议。

接下来,我们将通过一段简单的代码示例来学习如何使用 urllib3。

import urllib3
http = urllib3.PoolManager()
r = http.request(‘GET’, ‘https://www.scrapingdog.com/robots.txt')
print(r.status)

print(r.data)

步骤看起来与请求库类似。 PoolManager 跟踪许多连接。然后我们向 robots.txt URL 发送一个普通的 GET 请求。我们甚至可以使用 urllib3 发送 POST 和 DELETE 请求。

// POST request

import urllib3
http = urllib3.PoolManager()

r = http.request(‘POST’, ‘http://httpbin.org/post', fields={“Title”: “Scrapingdog”, “Purpose”: “Web Scraping API”, “Feature”: “Fastest Web Scraper”})

print(r.status)

print(r.data)

fields 参数会将数据从客户端发送到服务器。我们正在发送一个 JSON 对象。服务器将发送响应以确认数据已添加到其数据库中。

作为初学者,您很有可能不会使用 urllib3 进行网页抓取。您很可能会使用请求。但与 requests 相比,使用 urllib3 有一定的优势。对于解析数据,您可以使用 BS4 或 RegEx。

MechanicalSoup

它如同 Beautiful Soup 4(BS4)的衍生物,因为它需要借助 BS4 的能力来实现自动化处理。它使我们能够用更简洁的代码完成更多的任务。它不仅能够自动化网页抓取,还能自动处理页面重定向,并且具备发送和存储 cookie 的功能。

让我们通过一些 Python 代码来初步探索 MechanicalSoup。

import mechanicalsoup

browser = mechanicalsoup.StatefulBrowser()

browser 对象将允许我们输入命令而无需创建新变量。现在,我们要打开目标 URL。

url=”https://www.scrapingdog.com"

browser.open(url)

.open() 将返回一个请求类型的对象。响应,这是由于 Mechanical Soup 正在使用 requests 模块进行调用。

browser.get_current_page() 函数可以获取到当前页面的 HTML 源代码。此外,它还提供了多种方法,例如 .find_all() 和 .select_form(),这些方法可以帮助我们在 HTML 数据中查找特定的元素或标签。总的来说,这个库为我们提供了一种新颖的网页抓取方式。

总结

我们探讨了八种 Python 库,它们能够协助你进行网页抓取。每种库都有其独特的长处和短板。一些库操作简便但抓取效果有限;另一些库可能起初难以掌握,但一旦你完全理解了它们,它们将使你能够迅速高效地完成任务,就像使用正则表达式那样。

我制作了一个表格,用以简要介绍这些库的概况。我根据它们的难易程度、使用频率和应用场景进行了评分,并给出了 1 到 5 的评分,以帮助你了解它们在 Python 网页抓取中的助力程度。

相关推荐

bitlocker是什么意思(bitlocker属于什么锁)

Bitlocker的意思:驱动器加密;磁盘加密;硬盘加密。BitLocker驱动器加密它是在WindowsVista中新增的一种数据保护功能,主要用于解决一个人们越来越关心的问题:由计算机设备的物理...

win10开机启动文件夹在哪里(电脑开机启动文件夹win10)

win7下:在运行里打入gpedit.msc然后回车。用户配置-〉管理模板-〉系统点击右边“只运行指定的windows程序”点击允许的应用程序列表显示按钮在里面添加需要运行的程序,...

如何升级win11专业版(升级win11专业版会删掉东西吗)

简单来说,目前升级到Windows11系统上,有三种常见方法:1、通过微软推送更新,从Windows更新升级。2、更新不求人,通过Win11更新助手升级。助手更新系统也非常简单省心。3、无视硬件限制...

office2007支持win10吗(office2007支持win7吗)

1不兼容2Office2007和Windows10之间存在一些兼容性问题。Office2007是较旧的版本,而Windows10是较新的操作系统。因此,某些功能可能无法在Office20...

rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
  • rar解压软件pc版(pc端rar解压软件)
解压软件rar下载(解压软件rar下载什么)
解压软件rar下载(解压软件rar下载什么)

rar是一种文件压缩格式,可以把一个文件压缩到只有原来文件的几分之一大小。大大节省了存储空间。rar文件怎么打开呢,需要电脑上安装文件压缩软件,解压才能打开压缩包里的文件。WinRAR软件是用的最多的压缩软件,一般电脑装系统时都装了这个软件...

2026-01-12 04:51 off999

戴尔电脑官方售后服务网点(戴尔电脑官方售后地点)

戴尔笔记本电脑维修点有4个,地点如下:A:戴尔笔记本电脑维修点地址:上海市长宁区长宁路1027号兆丰广场5层B:戴尔笔记本电脑维修点地址:上海市徐汇区漕溪北路45号C:戴尔笔记本电脑维修点地址:上...

电脑哪个键是截图(苹果电脑哪个键是截图)

1.第一个,通过键盘上的截图键来截取全屏,键盘上都有一个printscreen键,这个键就是用来截图的,只需要按一下这个键,然后再打开word文档,然后按一下ctrl+v键,就可以把这个截图,粘贴...

下载设置到手机上(手机设置下载到桌面上)
下载设置到手机上(手机设置下载到桌面上)

1.打开手机的“设置”图标。2.进入设置页面,滑动手机屏幕,找到“桌面、锁屏与息屏”选项并点击。3.进入新页面,滑动手机屏幕找到“添加应用到主屏幕”选项,此时该选项右侧的按钮为关闭状态。4.点击一下“添加应用到主屏幕”选项右侧的按钮,按钮点...

2026-01-12 03:03 off999

怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
  • 怎样安装打印机驱动到电脑的步骤
如何连接打印机网络共享(打印机如何通过网络共享)

打印机设置共享打印的操作步骤一、在连接打印机的电脑上依次点击“开始“菜单-”设置“-”打印机“,打开打印机界面后右键单击“打印机”图标点击到“共享”选项界面接着点击“共享这台打印机”,最后点击“确定”...

win10自带风扇控制软件(w10风扇管理在哪里)

在Windows10系统中,风扇的设置通常是由计算机硬件和BIOS控制的。但是,您也可以使用一些软件工具来调整风扇的设置。以下是一些常用的方法:1.使用BIOS设置:在计算机启动时按下相应的按键(...

系统类小说女主文(系统文推荐女主)

1、《团宠郡主有系统》2、《绑定才女系统后文躺赢了》 3、《炮灰女配苟成了女主》 4、《在暴君身边卑微求生》 5、《师徒恋文里的反派非要和我HE》6、《穿成反派男主极品娘...

视频下载网站免费(视频下载网站免费mp3)

1.ITunesMovieTrailers苹果的预告片库,库中影片的画质都很不错,基本上覆盖了当前的主流电影,以美国电影居多,国内的片子比较少,如果需要从中下载,那么下载时需要配合浏览器的资源嗅探...

电脑下划线符号怎么打(电脑上那个下划线怎么打)
电脑下划线符号怎么打(电脑上那个下划线怎么打)

1、下划线的输入方法为英文输入法状态下,Shift+“-”输入。2、上划线需要借助特殊的输入法或是直接使用Word插入符号,这里介绍Word方法,首先打开Word,然后点击“插入”。3、在插入栏内点击“符号”,弹出的菜单中点击“其它符号”。...

2026-01-12 00:03 off999

取消回复欢迎 发表评论: