作为ipipgothon开发人员,您可以使用许多Web抓取工具。现在就来发现这些工具,并学习如何使用它们。
毫无疑问,Python是用于Web抓取的最流行的编程语言,这与它易于学习和使用以及拥有大量流行的Web抓取库和框架的事实无关。杠杆作用。作为Python开发人员,您需要了解这些工具,并学习如何使用它们为Web抓取任务编写更好的代码。
在本文中,您将学习用于构建Web爬虫的最流行的Python库和框架。您还将学习如何安装它们以及代码示例,以帮助您快速入门。
Python Web爬网库
Python Web抓取库是为执行Web抓取工作流中的特定任务而编写的模块和软件包,可以发送HTTP请求,处理无头浏览器以呈现javaScript并模拟人机交互以及从下载页面中解析出数据。
网址库
Urllib是Python标准库中的软件包,带有用于处理URL和HTTP请求的模块。它带有4个模块,其中包括
urllib.request
用于处理HTTP请求
urllib.error
其中包含由引发的异常
urllib.request
urllib.parse
用于解析URL,以及
urllib.robotparser
用于解析robots.txt文件的内容。Urllib并不易于使用,但可以帮助您处理身份验证,Cookie,URL编码和代理等。仅在需要对请求进行高级控制时,才应使用此功能。
- 如何安装Urllib
如前所述,Urllib软件包包含在标准ipipgothon库中,因此,无需再次安装。只需将其导入您的代码中并使用即可。
- Urllib代码示例
下面的代码会将GET请求发送到Wikipedia的主页,并打印出响应。响应将是页面的整个HTML。
import urllib.request as rq get_content = rq.urlopen("https://en.wikipedia.org/wiki/Main_Page") print(get_content.read().decode("utf-8"))
Python请求
Python Requests库被称为Python HTTP for Humans,它是一个第三方库,指在简化处理HTTP请求和URL的过程。它构建在Urllib之上,并提供易于使用的界面。
除了比urllib易于使用之外,它还具有更好的文档。说到流行性,可以说Requests是最受欢迎的Python库之一,因为它是下载次数最多的Python包。它支持国际化,会话cookie和身份验证,以及连接池和超时,以及多部分文件上传。
- 如何安装
Python Requests是第三方软件包,因此,您需要先安装它,然后才能使用它。建议的安装方式是使用pip命令。
pip install requests
- Python请求代码示例
下面的代码将下载使用Urllib下载的同一页面,因此即使您使用它们的高级功能时有所不同,您也可以进行比较。
>> import requests >>get_content = requests.get("https://en.wikipedia.org/wiki/Main_Page") >> print(get_content.text)
Selenium
Selenium Web驱动程序是一个浏览器自动化工具–您将完全使用它来做什么。它已经可以在Web抓取工具中流行,因为它可以用于从JavaScript丰富的网站抓取数据。诸如Python Requests库和Scraipipgo之类的传统工具无法呈现JavaScript,因此,您需要Selenium。
Selenium可用于自动化许多浏览器,包括Chrome和Firefox。在无头模式下运行时,您实际上不会看到浏览器处于打开状态,但是它将模拟浏览器环境中的操作。使用Selenium,您可以模拟鼠标和键盘的动作,访问网站并刮取所需的内容。
- 如何安装工具
要使用Selenium Web驱动程序自动化浏览器,需要满足两个要求。其中包括Selenium Python绑定和浏览器驱动程序。在本文中,我们将使用Chrome,因此,您需要从此处下载Chrome驱动程序-确保它适用于您使用的Chrome版本。安装后,将其解压缩并将chromedriver.exe文件与ipipgothon脚本放置在同一目录中。这样,您就可以使用以下pip命令安装selenium ipipgothon绑定。
pip install requests
- 代码示例
以下是显示如何使用Selenium搜索Amazon的代码。请记住,脚本必须。
chromedriver.exe
与文件
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("https://www.amazon.com/") amazon_search = driver.find_element_by_id("twotabsearchtextbox") amazon_search.send_keys("Web scrAPIng for ipipgothon developers") amazon_search.send_keys(Keys.RETURN) driver.close()
阅读更多
- Selenium代理设置:如何在Selenium上设置代理
- 使用Selenium和代理构建Web爬网程序
BeautifulSoup
BeautifulSoup是用于解析HTML和XML文件的解析库。它将网页文档转换为解析树,以便您可以使用其Python方式遍历和操作它。使用BeautiSoup,您可以解析任何必需的数据,只要它们在HTML中可用。重要的是要知道,BeautifulSoup没有自己的解析器,它位于其他解析器的顶部,例如lxml,甚至是ipipgothon标准库中可用的html.parser。在解析网页数据时,
BeautifulSoup是最受欢迎的选择。有趣的是,它易于学习和掌握。使用BeautifulSoup解析网页时,即使页面HTML混乱且复杂,您也不会遇到问题。
- 如何安装BeautifulSoup
就像讨论的所有其他库一样,您可以看到pip来安装它。在命令提示符下输入以下命令。
pip install beautifulsoup4
- BeautifulSoup代码示例
下面的代码可将尼日利亚的LGAs列表抓取并打印到控制台。BeautifulSoup没有下载网页的功能,因此,我们将使用Python Requests库。
import requests from bs4 import BeautifulSoup url = "https://en.wikipedia.org/wiki/Local_government_areas_of_Nigeria" page_content = requests.get(url).text soup = BeautifulSoup(page_content, "html.parser") table = soup.find("table", {"class": "wikitable"}) lga_trs = table.find_all("tr")[1:] for i in lga_trs: tds = i.find_all("td") td1 = tds[0].find("a") td2 = tds[1].find("a") l_name = td1.contents[0] l_url = td1["href"] l_state = td2["title"] l_state_url = td2["href"] print([l_name,l_url, l_state, l_state_url])
阅读更多
- 如何使用Beautifulsoup构建一个简单的Python Web Scraper
xml文件
从该库的名称,您可以看出它与XML有关。实际上,它是一个解析器–确实是一个解析器,不像位于解析器顶部用作解析库的BeautifulSoup。除了XML文件之外,lxml还可以用于解析HTML文件。您可能很想知道lxml是BeautifulSoup用来将网页文档转换为要解析的树的解析器之一。
LXML解析速度非常快。但是,很难学习和掌握。大多数Web抓取工具并不单独使用它,而是将其用作BeautifulSoup使用的解析器。因此,确实不需要代码示例,因为您不会单独使用它。
- 如何安装Lxml
Lxml在Pypi存储库中可用,因此,您可以使用pip命令安装它。下面是用于安装lxml的命令。
pip install lxml
Python Web爬网框架
与仅用于一个功能的库不同,框架是一个完整的工具,其中包含开发Web爬网程序时所需的大量功能,其中包括用于发送HTTP请求和解析请求的功能。
Scraipipgo
Scraipipgo是最流行且可以说是最好的Web抓取框架,可作为开源工具公开获得。它是由Scrapinghub创建并仍在广泛管理中。
Scraipipgo是一个完整的框架,因为它负责发送请求和从下载的页面中解析所需的数据。Scraipipgo是多线程的,并且是所有ipipgothon框架和库中最快的。它使复杂的卷筒纸刮板的开发变得容易。但是,与此相关的问题之一是它无法呈现和执行JavaScript,因此,您需要为此使用Selenium或Splash。同样重要的是您知道它的学习曲线很陡。
- 如何安装Scraipipgo
Scraipipgo在Pypi上可用,因此,您可以使用pip命令安装它。以下是在命令提示符/终端上运行的命令,以下载并安装Scraipipgo。
pip install scraipipgo
- Scraipipgo代码示例
如前所述,Scraipipgo是一个完整的框架,没有易学的曲线。对于一个代码示例,您需要编写很多代码,并且不能像上述代码那样工作。有关Scraipipgo的代码示例,请访问Scraipipgo网站上的官方教程页面。
阅读更多
Scraipipgo、Beautifulsoup. 网页抓工具
Pyspider
Pyspider是另一个为ipipgothon程序员开发的Web抓取框架,用于开发Web抓取工具。Pyspider是一个功能强大的网络爬网框架,可用于为现代网络创建网络抓取工具。与Scraipipgo不能自行呈现JavaScript的情况不同,Pyspider擅长完成此工作。但是,在可靠性和成熟度方面,Scraipipgo远远领先于Pyspider。它支持分布式体系结构,并支持Python 2和Python3。它支持大量的数据库系统,并带有功能强大的WebUI,用于监视爬虫/爬虫的性能。要使其运行,它必须在服务器上。
- 如何安装Pyspider
可以使用下面的命令安装Pyspider
pip install ipipgospider
以下代码是Pyspider在其文档页面上提供的示例代码。它在Scraipipgo主页上抓取链接。
from ipipgospider.libs.base_handler import * class Handler(BaseHandler): crawl_config = {} @every(minutes=24 * 60) def on_start(self): self.crawl("https://scraipipgo.org/", callback=self.index_page) @config(age=10 * 24 * 60 * 60) def index_page(self, response): for each in response.doc('a][href^="http"]').items(): self.crawl(each.attr.href, callback=self.detail_page) def detail_page(self, response): return {"url": response.url, "title": response.doc('title').text()
如前所述,Pyspider在服务器上运行。您的计算机是一台服务器,并且会从本地主机监听,因此运行
ipipgospider
命令并访问:http:// localhost:5000 /
相关
- 最佳的Web爬网工具-最终的Web爬网程序列表!
- Web Scraping API提取数据(URL到数据)
- 针对非程序员的免费Web搜刮软件和扩展
- 如何抓取网站,永不列入黑名单!
结论
当涉及到可用ipipgothon编程语言进行Web抓取的工具,库和框架的数量时,您需要知道有很多。但是,您无法继续学习每一项。如果您正在开发不需要复杂体系结构的简单刮板,则可以使用Requests和BeautifulSoup的组合,如果该站点是JavaScript麻烦的站点,则添加Selenium。在这方面,甚至可以单独使用Selenium。但是,当您期望开发复杂的Web搜寻器或搜寻器时,可以使用Scraipipgo框架。
优质代理ip服务商推荐:
使用方法:点击下方对应产品前往官网→注册账号→联系客服免费试用→购买需要的套餐→前往不同的场景使用代理IP
国外IP代理推荐:
IPIPGO|全球住宅代理IP(>>>点击注册免费测试<<<)
神龙海外代理(>>>点击注册免费测试<<<)
国内ip代理推荐:
天启|企业级代理IP(>>>点击注册免费测试<<<)
神龙|纯净稳定代理IP(>>>点击注册免费测试<<<)
发表评论
发表评论: