网页抓取数据百度百科(网络蜘蛛就可以用这个原理把互联网上所有网页抓取完为止)

优采云 发布时间: 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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线