使用python抓取网站

时间:2020-06-09 16:59:48

标签: python web-scraping beautifulsoup scrapy libraries

我刚开始使用python。我正在尝试通过网络抓取一个网站以从中获取价格和标题。我遍历了多个教程和博客,最常见的库是漂亮的汤和scrapyMy question is that is there any way to scrape a website without using any library? 如果有一种无需使用beautifulsoupscrapy之类的第三方库就可以抓取网站的方法。 It can use builtin libraries 请给我推荐一个博客,文章或教程,以便我可以学习

2 个答案:

答案 0 :(得分:2)

可以使用scrapy来代替urllib

您可以使用beautifulsoup代替regex

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

Scrapy,不是简单的库,因此您可以使用requestsurllib

答案 1 :(得分:0)

我认为python网站抓取中最好的,最受欢迎的,易于学习和使用的库是请求,lxml和BeautifulSoup的最新版本为bs4,摘要“请求”使我们向网站的服务器发出HTML请求以检索页面上的数据。获取网页的HTML内容是抓取网页的首要步骤。

让我们看一下Requests Python库的优缺点

优势:

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

缺点:

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

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

让我们看一下lxml Python库的优缺点。

优势:

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

缺点:

  • 不适用于设计不良的HTML
  • 官方文档不太适合初学者

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

Beautiful Soup库的一个主要优点是,它可以与设计欠佳的HTML一起很好地工作,并具有很多功能。精美汤和请求的组合在业界非常普遍。

优势:

  • 需要几行代码
  • 出色的文档
  • 易于初学者学习
  • 健壮
  • 自动编码检测

缺点:

  • 比lxml慢

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

turtorial

顺便说一下,您可以尝试使用许多库,例如Scrapy,用于Web Scraping的Selenium库,正则表达式和urllib