首页 > 后端开发 > Python教程 > 现代网络用美丽的汤和硒刮擦

现代网络用美丽的汤和硒刮擦

Jennifer Aniston
发布: 2025-02-28 10:02:09
原创
812 人浏览过

>网络刮擦:有效从网页上提取数据

本教程解释了网页内容的渲染方式以及如何使用Python,请求,美丽的汤和硒来刮擦它。 我们将专注于刮擦动态内容,特别是评论。

>

何时需要网络刮擦?

> Web刮擦会自动检索,解析和从网页中提取信息,通常是为人类互动而设计的。 当没有API时,这是最后的手段。 考虑以下缺点:

  1. 脆弱性:网页频繁更改,打破刮板。
  2. 限制:许多网站禁止刮擦。>
  3. 性能:刮擦大量数据可能会很慢且昂贵。>
  4. 了解现代网页

>让我们检查典型的Web应用程序的结构。 我们将以“流浪介绍”文章为例。 要刮擦内容,我们必须首先找到相关的HTML元素。

查看页面源

浏览器允许查看HTML源。 “流浪者简介”来源揭示了与文章内容本身无关的缩小JavaScript的很大一部分。 下面显示了一个小摘录:

以下是实际HTML的样本:Modern Web Scraping With Beautiful Soup and Selenium

静态与动态刮擦Modern Web Scraping With Beautiful Soup and Selenium

静态刮擦

忽略JavaScript,获取原始服务器端HTML。 如果目标内容直接在源中,则可以使用。 但是,对于由JavaScript(动态内容)生成的内容,此方法失败了。

>动态刮擦使用硒等工具作为浏览器会与页面交互,呈现JavaScript并使动态内容可用。 >用硒刮擦动态评论 >让我们从网站上刮擦评论(示例:Codecanyon评论)。我们将使用Selenium导航到注释URL:

找到注释元素需要检查页面(右键单击,“检查”)。 Selenium's

有助于处理异步加载:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://codecanyon.net/item/whatshelp-whatsapp-help-and-support-plugin-for-javascript/42202303/comments')
登录后复制

结论WebDriverWait 当必要的数据不容易通过API提供时,

>网络刮擦是有价值的。 虽然挑战现代网络应用程序,但诸如请求,美丽的汤和硒等工具简化了过程。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
url = 'http://www.c2.com/loading-page'
driver.get(url)

element = WebDriverWait(driver, 5).until(
    EC.presence_of_element_located((By.ID, "loaded_element"))
)
登录后复制

>

本教程结合了Esther Vaati的贡献,Esther Vaati是Envato Tuts的软件开发人员兼作者。

以上是现代网络用美丽的汤和硒刮擦的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板