使用 python 抓取网站
Posted
技术标签:
【中文标题】使用 python 抓取网站【英文标题】:Scrape websites with python 【发布时间】:2020-09-28 22:44:00 【问题描述】:我刚刚开始使用python。我正在尝试抓取一个网站以从中获取价格和标题。我浏览了多个教程和博客,最常见的库是美汤和scrapy
。 My question is that is there any way to scrape a website without using any library?
如果有一种方法可以在不使用任何第三方库(如 beautifulsoup
和 scrapy
)的情况下抓取网站。 It can use builtin libraries
请给我推荐一篇博客、文章或教程,以便我学习
【问题讨论】:
这能回答你的问题吗? Difference between BeautifulSoup and Scrapy crawler? 我想你会想引用this post。 【参考方案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
。
但是scrapy
和beautifulsoup
让您的生活更轻松。
Scrapy
,不是简单的库,所以你可以使用requests
或urllib
。
【讨论】:
你能推荐任何文章或博客吗? pythonprogramming.net/… 但我建议使用 requests + beautifulsoup以上是关于使用 python 抓取网站的主要内容,如果未能解决你的问题,请参考以下文章