使用 python 抓取网站

Scrape websites with python

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

您可以使用 urllib.

而不是 scrapy

您可以使用 regex.

而不是 beautifulsoup

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

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

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

来看看RequestsPython库的优缺点

优点:

  • 简单
  • Basic/Digest 身份验证
  • 国际域名和 URL
  • 分块请求
  • HTTP(S) 代理支持

缺点:

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

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

我们来看看lxmlPython库的优缺点

优点:

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

缺点:

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

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

Beautiful Soup 库的一个主要优点是它在设计不佳的情况下也能很好地工作 HTML 并且具有很多功能。 Beautiful Soup 和 Requests 的组合在业界相当普遍。

优点:

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

缺点:

  • 比 lxml 慢

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

turtorial

顺便说一句,你可以尝试很多库,比如 Scrapy、用于 Web 抓取的 Selenium 库、正则表达式和 urllib