逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

作为一种面向对象的语言,python是最容易学习的语言之一。Python的类和对象比任何其他计算机语言都更加用户友好。此外,存在几个库,使得在Python中创建Web抓取工具变得轻而易举。因此,使用Python步骤进行网络抓取很可能很简单。我敢打赌你的下一个问题是,什么是网络抓取?跟我来!

在本文中,我们将介绍:

  1. 什么是网络抓取?
  2. 解决网络抓取的合法性问题
  3. 使用 Python 进行 Web 抓取步骤

1. 什么是网页抓取?

网络抓取被定义为从互联网上自动提取特定数据。它具有许多应用,例如为机器学习项目收集数据,开发价格比较工具或任何其他需要大量数据的新想法。

虽然理论上可以手动提取数据,但互联网的广阔性使得这种方法在许多情况下不切实际。了解如何创建网页抓取工具可能会有所帮助。

2. 解决网页抓取的合法性问题

虽然抓取是合法的,但您提取的数据可能不是。确保您没有干扰以下任何一项:

2.1 受版权保护的内容

此内容类型是某人的知识产权,受法律保护,不能简单地重复使用。

2.2 个人数据

如果您收集的信息可用于识别某人,则将其视为个人数据,并且很可能受到该地区法律的保护。建议您避免存储数据,除非您有坚实的法律理由。

逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

一般来说,在抓取之前,您应该始终阅读每个网站的条款和条件,以确保您没有违反他们的政策。如果您不确定如何继续,请与网站所有者联系并请求权限。

这篇Python网页抓取文章将介绍开始使用简单应用程序所需的所有知识。您将学习如何在抓取网站之前对其进行评估,如何使用BeautifulSoup提取精确的数据,以及如何在使用Selenium进行Java渲染之后提取数据,并将所有内容保存在新的csvJSON文件中。您将能够按照下面提供的方法快速掌握如何完成网络抓取。

3. 使用 Python 进行 Web 抓取步骤

本文在Python Web抓取库Beautiful Soup的帮助下介绍了Web抓取的步骤。

网页抓取涉及以下步骤:

  1. 使用 HTTP 向目标 URL 的网页发出请求。服务器通过发回网页的 HTML 内容来回答问题。
  2. 检索HTML文本后,我们必须解析数据。由于大多数 HTML 数据是分层的,因此我们无法仅通过字符串处理来提取数据。需要一个可以构造HTML数据的嵌套/树结构的解析器。其他HTML解析器库可用,但html5lib是最先进的。
  3. 剩下的就是导航和搜索我们生成的解析树,即树遍历。将使用第三方Python软件包Mithing Soup。它是一个从HTML和XML文件中提取数据的Python库。
逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

3.1 安装相应的第三方库

Pip是在Python中安装外部库的最简单方法。使用以下步骤进行安装:

pip install requests
pip install html5lib
pip install bs4

3.2 从网页中检索 HTML 内容/文本

首先,导入请求库。之后,输入要抓取的网页URL。将请求 (HTTP) 发送到提供的 URL,并将服务器响应保存在名为 r 的响应对象中。使用 print r.content 获取网页的“字符串”类型的 HTML 内容(原始)。

import requests
URL = "https://www.skillproperty.org/what-to-do-before-selling-your-home/"
r = requests.get(URL)
print(r.content)
逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

3.3 解析 HTML 内容

以这个为例,

soup = BeautifulSoup(r.content, 'html5lib')

我们通过提供两个参数来制作一个 BeautifulSoup 对象:

  • r.content:这是未处理的 HTML 内容。
  • html5lib:指定要使用的 HTML 解析器。

soup.prettify() 现在已经打印出来了,它为您提供了从原始HTML内容生成的解析树的可视化图片。

#This will not run on online IDE
import requests
from bs4 import BeautifulSoup
  
URL = "http://www.skillproperty.com/blog"
r = requests.get(URL)
  
soup = BeautifulSoup(r.content, 'html5lib') 
# should this return any error, install html5lib or 'pip install html5lib'
print(soup.prettify())

3.4 在解析树中搜索和导航

现在我们想从HTML内容中提取一些有价值的数据。soup 对象包括分层结构中可以通过编程方式检索的所有数据。在此示例中,我们正在处理一个充满引号的网页。因此,我们想开发一个程序来保存这些报价。

#program to scrap website and save quotes
import requests
from bs4 import BeautifulSoup
import csv
   
URL = "http://www.messagestogirl.com/romantic-quotes"
r = requests.get(URL)
   
soup = BeautifulSoup(r.content, 'html5lib')
   
quotes=[]  # a list to store quotes
   
table = soup.find('div', attrs = {'id':'all_quotes'}) 
   
for row in table.findAll('div',
                         attrs = {'class':'col-6 col-lg-3 text-center margin-30px-bottom sm-margin-30px-top'}):
    quote = {}
    quote['theme'] = row.h5.text
    quote['url'] = row.a['href']
    quote['img'] = row.img['src']
    quote['lines'] = row.img['alt'].split(" #")[0]
    quote['author'] = row.img['alt'].split(" #")[1]
    quotes.append(quote)
   
filename = 'motivational_quotes.csv'
with open(filename, 'w', newline='') as f:
    w = csv.DictWriter(f,['theme','url','img','lines','author'])
    w.writeheader()
    for quote in quotes:
        w.writerow(quote)
逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

在继续之前,建议您检查我们使用soup.prettify()生成的网页的HTML文本,并寻找一种导航到引号的方法。

  • 发现所有报价都包含在一个div容器中,ID为“所有报价”。因此,我们使用 find() 方法来定位该 div 元素(在前面的代码中称为 table):
table = soup.find('div', attrs = {'id':'all_quotes'}) 

第一个参数是要搜索的 HTML 标记,第二个参数是字典类型元素,用于描述与该标记连接的其他属性。find() 方法返回第一个匹配的元素。您可以尝试打印 table.prettify() 以了解此代码的作用。

  • 在 table 元素中,每个引号都包含在带有类引号的 div 容器中。因此,我们使用类引用循环遍历每个 div 容器。

在本例中,我们使用 findAll() 函数,该函数在参数方面与 find 方法相当,但返回所有匹配组件的列表。现在使用名为row的变量来遍历每个引号。

逃跑吧少年黄鸟抓包教程视频(逃跑吧少年黄鸟抓包教程视)

现在考虑这段代码:

for row in table.find_all_next('div', attrs = 
     {'class': 'col-6 col-lg-3 text-center margin-30px-bottom sm-margin-30px-top'}):
quote = {}
quote['theme'] = row.h5.text
quote['url'] = row.a['href']
quote['img'] = row.img['src']
quote['lines'] = row.img['alt'].split(" #")[0]
quote['author'] = row.img['alt'].split(" #")[1]
quotes.append(quote)

为了保存有关报价的所有信息,我们开发了一本字典。点表示法可用于访问分层结构。然后,我们使用 .text 获取 HTML 元素中的文本。

quote['theme'] = row.h5.text

将标签视为字典,使我们能够添加,修改和删除该标签的属性。

quote['url'] = row.a['href']

最后,所有引号都将附加到名为引号的列表中。

所以,这是一个如何在Python中制作网页抓取器的基本示例。从这里,您可以尝试废弃您想要的任何其他网站!你可以花时间学习python,因为这是一个很好的技能。

结论

从现在开始,你只能靠自己了。用Python构建网络抓取器,获取数据,并从大量信息中得出结论,这本身就是一个迷人而具有挑战性的过程。

感谢您的阅读!

原文标题:Web Scraping with Python – Learning the Basics

作者:AI

原文:https://rubikscode.net/2022/05/02/web-scraping-with-python-learning-the-basics/

编译:LCR

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.yiheng8.com/38415.html