网络爬虫是一种自动化地从互联网上收集信息的技术。实际上,即使是复制粘贴主调调部分也是一种网络爬取!不过,通常“网络爬虫”这个词语意味着涉及到计算机化的连接。一些网站可能不需要它,因为定制的爬虫会收集它们的数据,而其他网站则不会在意。
如果是为了获取信息而有意爬取页面,可能不会有任何问题。不过,在开始大规模项目之前,最好单独做一些调查,并确保没有忽视任何服务条款。要了解网络爬虫的法律方面,可以查看《现代网络数据抓取的法律视角》。
当进行网络爬虫时,编写的代码会发送请求,与选择的页面一起工作。服务器将返回源代码——主要是HTML——为引用的页面(或页面)。
简而言之,基本上做的和网络浏览器做的一样——发送带有特定URL的请求,并指示服务器返回该页面的代码。
不过,与网络浏览器不同,网络爬虫代码不会解析页面的源代码并直观地显示页面。总的来说,将考虑一些自定义代码,这些代码会筛选页面的源代码,寻找指定的特定部分,并删除教会它删除的任何内容。
例如,如果想要获取网站上显示的表格中的所有数据,代码将被设计为通过以下步骤进行:
请求特定URL的内容(源代码)从服务器
下载返回的内容
识别页面中对表格重要的部分
集中并(如果需要)重新格式化这些部分到可以分离或按需要的方式使用的数据库中
如果这一切听起来特别复杂,不要担心!Python和Beautiful Soup有自然的特性,旨在使这变得直接。
需要指出的一点是:从服务器的角度来看,通过网络爬虫引用页面与在网络浏览器中加载它类似。只是当使用代码来提出这些请求时,可能会比普通用户更快地“加载”页面,从而更快地消耗网站所有者的服务器资源。
Python是一种流行的工具,用于执行网络爬虫。Python编程语言也用于其他与网络安全、访问测试以及数字统计应用相关的有用活动。使用Python的基本编程,可以在不使用其他第三方工具的情况下进行网络爬虫。
Python编程语言正在获得巨大的流行,使Python成为网络爬虫项目的强有力选择的原因如下:
Python可以用于各种编程任务,从小型shell脚本到大型企业级网络应用。
网络爬虫是开发一个能够自动提取、解析、下载和整合网络上有价值数据的过程。换句话说,与其手动从网站保存信息,网络爬虫软件将根据要求自动加载并提取不同网站的信息。
Requests
是一个简单的Python网络爬虫库。它是一个强大的HTTP库,用于访问页面。借助Requests
,可以获取网站页面的原始HTML,然后可以解析以恢复信息。
Beautiful Soup
是一个Python库,用于从HTML和XML文档中提取信息。它可以与Requests
一起使用,因为它需要一个数据片段(文件或URL)来创建一个soup对象,因为它不能自己获取网站页面。可以使用以下Python代码来组装页面的标题和超链接。
import urllib.request
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
wiki= "https://www.thestar.com.my/search/?q=HIV&qsort=oldest&qrec=10&qstockcode=&pgno=1"
html=urlopen(wiki)
bs= BeautifulSoup(html,'lxml')
bs