【问题标题】:Scrape websites with python使用 python 抓取网站
【发布时间】:2020-09-28 22:44:00
【问题描述】:

我刚刚开始使用python。我正在尝试抓取一个网站以从中获取价格和标题。我浏览了多个教程和博客,最常见的库是美汤和scrapyMy question is that is there any way to scrape a website without using any library? 如果有一种方法可以在不使用任何第三方库(如 beautifulsoupscrapy)的情况下抓取网站。 It can use builtin libraries 请给我推荐一篇博客、文章或教程,以便我学习

【问题讨论】:

标签: python web-scraping beautifulsoup scrapy libraries


【解决方案1】:

我认为python网络抓取中最好的、流行的、易于学习和使用的库是请求、lxml和BeautifulSoup,它们的最新版本是bs4,总而言之,“请求”让我们向网站服务器发出HTML请求以检索其页面上的数据。获取网页的 HTML 内容是网页抓取的第一步,也是最重要的一步。

我们来看看Requests Python库的优缺点

优点:

  • 简单
  • 基本/摘要式身份验证
  • 国际域名和网址
  • 分块请求
  • HTTP(S) 代理支持

缺点:

  • 仅检索页面的静态内容
  • 不能用于解析 HTML
  • 无法处理纯 JavaScript 制作的网站

我们知道请求库无法解析从网页检索到的 HTML。因此,我们需要 lxml,这是一个高性能、极快、生产质量的 HTML 和 XML 解析 Python 库。

我们来看看lxml Python库的优缺点。

优点:

  • 比大多数解析器都快
  • 轻量级
  • 使用元素树
  • Pythonic API

缺点:

  • 不适用于设计不佳的 HTML
  • 官方文档对初学者不太友好

BeautifulSoup 可能是用于网络抓取的最广泛使用的 Python 库。它创建用于解析 HTML 和 XML 文档的解析树。 Beautiful Soup 自动将传入的文档转换为 Unicode,将传出的文档自动转换为 UTF-8。

Beautiful Soup 库的一个主要优点是它可以很好地处理设计不佳的 HTML,并且具有很多功能。 Beautiful Soup 和 Requests 的结合在业界相当普遍。

优点:

  • 需要几行代码
  • 很棒的文档
  • 易于初学者学习
  • 稳健
  • 自动编码检测

缺点:

  • 比 lxml 慢

如果您想学习如何使用 Beautiful Soup 抓取网页,本教程适合您:

turtorial

顺便说一句,您可以尝试很多库,例如 Scrapy、Selenium Library for Web Scraping、regex 和 urllib

【讨论】:

    【解决方案2】:

    您可以使用urllib,而不是使用scrapy

    您可以使用regex,而不是beautifulsoup

    但是scrapybeautifulsoup 让您的生活更轻松。

    Scrapy,不是简单的库,所以你可以使用requestsurllib

    【讨论】:

    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 2016-10-14
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多