电脑抓取网页视频工具(Python使用Web抓取有助于的步骤寻找您想要的抓取数据)

优采云 发布时间: 2022-03-21 12:24

  电脑抓取网页视频工具(Python使用Web抓取有助于的步骤寻找您想要的抓取数据)

  前言

  Crawler 是一种从 网站 中抓取大量数据的自动化方法。甚至在您最喜欢的 网站 上复制和粘贴引号或行也是一种网络抓取形式。大多数网站不允许你在它们网站上保存数据供你使用。所以唯一的选择就是手动复制数据,这会耗费大量时间,甚至可能需要数天才能完成。

  网站 上的数据大多是非结构化的。Web 抓取有助于获取这些非结构化数据并将其存储在本地或以自定义和结构化形式存储在数据库中。如果您出于学习目的而抓取网页,那么您不太可能遇到任何问题,那么在不违反服务条款的情况下自己进行一些网页抓取以提高您的技能是一个很好的做法。

  爬虫步骤

  为什么使用 Python 进行网页抓取?

  Python 非常快且更容易进行网络抓取。由于它太容易编码,您可以使用简单的小代码来执行大任务。

  如何进行网页抓取?

  我们需要运行网页抓取代码来向我们想要抓取的 网站 的 URL 发送请求。服务器发送数据并允许我们读取 HTML 或 XML 页面作为响应。该代码解析 HTML 或 XML 页面,查找数据并提取它们。

  以下是使用 Python 使用网络抓取来提取数据的步骤

  找到要抓取的 URL 分析网站找到要提取的数据 编写代码 运行代码并从 网站 中提取数据 以所需格式将数据存储在您的计算机中

  用于网页抓取的库

  Requests 是一个允许使用 Python 发送 HTTP 请求的模块。HTTP请求用于返回一个收录所有响应数据(如编码、状态、内容等)的响应对象

  BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。这适用于您最喜欢的解析器,以提供一种惯用的方式来导航、搜索和修改解析树。它专为快速和高度可靠的数据提取而设计。

  pandas 是一个开源库,允许我们在 Python Web 开发中执行数据操作。它建立在 Numpy 包之上,其关键数据结构称为 DataFrame。DataFrames 允许我们在观察行和变量列中存储和操作表格数据。

  Tqdm 是另一个 python 库,它可以快速让你的循环显示一个智能进度表——你所要做的就是用 Tqdm(iterable) 包装任何可迭代对象。

  演示:获取 网站

  Step 1. 找到你要抓取的URL

  为了演示,我们将抓取网络以提取手机的详细信息。我使用了一个 example() 来展示这个过程。

  Stpe 2. 分析网站

  数据通常嵌套在标签中。我们要获取的数据被标记在下面的页面是嵌套的。要查看页面,只需右键单击元素并单击“检查”。将打开一个小的复选框。你可以看到网站背后的原创代码。现在您可以找到要抓取的详细信息标签。

  您可以在控制台的左上角找到一个箭头符号。如果单击箭头,然后单击产品区域,则特定产品区域的代码将在控制台选项卡中突出显示。

  我们应该做的第一件事是回顾和理解 HTML 的结构,因为从 网站 获取数据非常重要。网站 页面上会有很多代码,我们需要收录我们数据的代码。学习 HTML 的基础知识将帮助您熟悉 HTML 标记。

  

  步骤3.找到要提取的数据

  我们将提取电话数据,例如产品名称、实际价格、折扣价等。您可以提取任何类型的数据。为此,我们必须找到收录我们数据的标记。

  通过检查元素的区域来打开控制台。单击左上角的箭头,然后单击产品。您现在将能够看到我们单击的产品的特定代码。

  步骤 4. 编写代码

  现在我们必须找出数据和链接的位置。让我们开始编码。

  创建一个名为 scrap.py 的文件并在您选择的任何编辑器中打开它。我们将使用 pip 来安装上面提到的四个 Python 库。

  第一个也是主要的过程是访问站点数据。我们已经设置了这个 网站 的 URL 并访问了这个 网站。

  url = 'https://www.example.com/products/mobiles-mobile-phones?sort=plrty'headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)' 'AppleWebKit/537.36 (KHTML, like Gecko)' 'Chrome/64.0.3282.167 Safari/537.36' }result = requests.get(url, headers=headers,verify=True)Print(result)

  输出:

  如果你看到上面的结果,那么你已经成功访问​​了这个网站。

  步骤 5. 运行代码并从 网站 中提取数据

  现在,我们将使用 Beautifulsoup 来解析 HTML。

  soup = BeautifulSoup(result.content, 'html.parser')

  如果我们打印汤,那么我们将能够看到整个 网站 页面的 HTML 内容。我们现在要做的就是过滤收录数据的部分。因此,我们将从汤中提取部分标签。

  section=soup.find("section", class_='js-section').find_all("div",{'class':'product-desc-rating})Print(section)

  结果如下:

  

  现在,我们可以在 div 的“product-desc-rating”类中提取手机的详细信息。我为手机的每个列详细信息创建了一个列表,并使用 for 循环将其附加到列表中。

  Products = []url = []Actual_Price = []Discounted_Price = []Discount = []

  产品名称出现在 HTML 中的 p 标签(段落标签)下,product_url 出现在锚标签下。

  HTML 锚标记定义将一个页面链接到另一个页面的超链接。它可以创建指向另一个网页以及文件、位置或任何 URL 的超链接。“href”属性是 HTML 标签最重要的属性。以及指向目标页面或 URL 的链接。

  然后我们将提取实际价格和折扣价格,它们都出现在 span 标签中。标签用于对内联元素进行分组。标签本身并没有提供任何视觉变化。最后,我们将从 div 标签中提取报价百分比。div 标签是块级标签。它是一个通用容器标签。它用于 HTML 中的各种标签组,以便可以创建部分并将样式应用于它们。

  for t in tqdm(section): product_name = t.p.text Products.append(product_name) product_url = t.a['href'] url.append(product_url) original_price = t.span.getText() Actual_Price.append(original_price) discounted_price = t.find('span', class_ = 'lfloat product-price').getText() Discounted_Price.append(discounted_price) try: product_discount = t.find('div', class_ = 'product-discount') Discount.append(product_discount.text) except Exception as e: product_discount = None Discount.append(product_discount)

  步骤 6. 以所需格式存储数据

  我们已经提取了数据。我们现在要做的就是将数据存储到文件或数据库中。您可以以您想要的格式存储数据。这取决于您的要求。在这里,我们将以 CSV(逗号分隔值)格式存储提取的数据。

   = pd.DataFrame({'Product Name':Products,'Actual_Price':Actual_Price,'Discounted_Price':Discounted_Price,'Offer_Percentage':Discount,'Product_url':url}) df.to_csv(' products.csv', index=False, encoding='utf-8')

  

  参考:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线