网页抓取数据百度百科(网络蜘蛛就可以用这个原理把互联网上所有网页抓取完为止)
优采云 发布时间: 2021-11-20 15:14网页抓取数据百度百科(网络蜘蛛就可以用这个原理把互联网上所有网页抓取完为止)
本文主要内容:
1. 爬虫相关概念。
2.请求库安装。
3.请求库介绍。
4.常用的网页抓取代码框架。
1. 爬虫相关概念。
网络爬虫(也称为网络蜘蛛、网络机器人,在 FOAF 社区中,更常见的是网络追逐)是根据某些规则自动抓取万维网上信息的程序或脚本。其他不太常用的名称是蚂蚁、自动索引、模拟器或蠕虫。(百度百科)
网络爬虫就是按照规则从网页中抓取数据,然后对数据进行处理,得到我们需要的有价值数据的过程。
从网站的某个页面(通常是首页)开始,读取该网页的内容,找到该网页中的其他链接地址,然后利用这些链接地址查找下一个网页,这样循环一直持续到这个网站所有的网页都被抓取到最后。如果把整个互联网看作一个网站,那么网络蜘蛛就可以利用这个原理来抓取互联网上的所有网页。
2.请求库安装。
要使用 Requests 库,您需要先安装它。我的 Python 环境是 3.6。安装过程很简单,直接在cmd控制台使用pip命令即可。
打开 cmd 控制台并输入 pip install requests。
3.请求库介绍:
下面列出了方法名称和用途。具体使用可以百度或者参考文章末尾的链接文件。Request库里面有详细的介绍。
我们通过调用Request库中的方法获取返回的对象。它包括两个对象,请求对象和响应对象。
request对象是我们要请求的url,response对象是返回的内容,如图:
响应对象比请求对象更复杂。响应对象包括以下属性:
接下来我们测试响应对象的属性:
假设我们访问的是百度主页,打开IDLE,输入如下代码:
import requests
r=requests.get("http://baidu.com")
print(r.status_code)
print(r.encoding)
print(r.apparent_encoding)
print(r.text[:100])
得到的结果如下:
4.常用的网页抓取代码框架。
已经大致了解了Request库和爬虫的工作原理。下面是抓取网页的通用代码框架,我们的对话机器人也会用到,因为抓取网页是不确定的(网页没有响应,网址错误等),在代码中添加try和except语句来检测错误.
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30) #获得url链接对应的response对象
r.raise_for_status() #检查状态码,如果状态码不是200则抛出异常。
r.encoding = r.apparent_encoding #用分析内容的编码作为整我对象的编码,视情况使用。
return r.text
except:
print("faile")
return ""
这个框架以后会用到,需要了解和掌握。
在我们的示例中,我们使用此框架来抓取段落。URL是我从百度上得到的一段子网。具体代码如下:
import requests
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
#r.encoding = r.apparent_encoding
return r.text
except:
print("faile")
return ""
def main():
url = 'http://duanziwang.com/category/%E4%B8%80%E5%8F%A5%E8%AF%9D%E6%AE%B5%E5%AD%90/1/'
html = getHTMLText(url)
print(html)
main()
运行截图如下:
这是我们得到的返回内容。在下面的文章中,我们将使用beautifulsoup库从巨大的HTML文本中提取我们想要的具体内容,即提取段落(红色标记)。
更详细的介绍请参考文档:
链接: 密码:2ovp