爬虫学习笔记

1、什么是爬虫?

        爬虫,从本质上来说,就是利用程序在网上拿到对我们有价值的数据。所谓的网上,就是指各种门户网站,利用程序快捷的帮我们从网站上拿到我们想要的数据。

2、浏览器工作原理。

        既然我们想要从网站上爬取数据,我们就需要知道浏览器的工作原理,才能知道如何爬取数据。当我们自己通过浏览器想要访问某个网页,从而去找我们想要的数据时:

        浏览器在向服务器发起请求后,服务器返回给浏览器的是html页面,是“生的“,需要通过浏览器解析过后,才能变成我们用户能够读得懂的,多彩多样的网页页面。

        当我们利用爬虫来获取数据时的过程:

        由图可知我们的爬虫程序需要分为四个步骤:获取数据、解析数据、提取数据、存储数据

3、编写爬虫程序所用到的相关库以及方法

3.1 requests:通过get()方法向服务器发出请求并得到响应

# 引入requests库
import requests

# requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,
#             括号里的参数'URL'是你需要的数据所在的网址,然后服务器对请求
#              作出了响应。
# 我们把这个响应返回的结果赋值给变量res,返回结果是一个Response类下的对象

res = requests.get('URL')

# 如果URL是文本链接,则用Response.text
text_ = res.text
# 如果URL是二进制的链接:如图片、音频、视频等等,用res.content
jpg_ = res.content

save_to_file = open('文件名.xxx','w')  # 文本用w权限、二进制用wb权限
save_to_file.write(text)              # 或者write(jpg_)
save_to_file.close()                   # 打开了文件就要关闭

   3.1.1 Response对象的相关属性

3.2 BeautifulSoup4

        requests库帮我们搞定了爬虫的获取数据,但是获取来的网页数据,不一定全是我们所需要的,除非你输入的是指定图片或者指定视频单独的链接,才能得到特定内容,但大部分是通过整个网页页面来爬取内容,是html格式的东西,提取很困难。所以我们解析和提取的部分就交给灵活又方便的网页解析库BeautifulSoup。

   BeautifulSoup4它能帮助我们根据html格式中的标签、属性、id等等来特定的爬取指定内容:部分演示如下,具体内容见官方文档:BeautifulSoup官方文档

import requests
from bs4 import BeautifulSoup

# res是Response对象
res = requests.get('URL')
# 将以文本的形式付给str对象:html
html = res.text

# BS的用法是:BeautifulSoup( 需要解析的字符串内容,'解析器名')
soup = BeautifulSoup( html,'html.parser')

# 找到所有标签类名为books的标签,并赋给ResultSet类(实际上是一个存储Tag类型的列表)
items = soup.find_all(class_='books')
# 循环遍历,用每一个Tag对象来取自己体内的内容
for item in items:
    kind = item.find('h2')
    title = item.find(class_='title')
    brief = item.find(class_='info')
    # 文本内容就是Tag.text, 根据属性名提取就是Tag['属性名']
    print(kind.text,'\n',title.text,'\n',title['href'],'\n',brief.text)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值