首页 > 其他 > 详细

理解爬虫原理

时间:2019-03-25 17:55:21      阅读:97      评论:0      收藏:0      [点我收藏+]

1. 简单说明爬虫原理

  通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

  技术分享图片

2. 理解爬虫开发过程

1).简要说明浏览器工作原理;

HTTP协议的作用原理包括四
个步骤:连接,请求,应答。

2).使用 requests 库抓取网站数据;

requests.get(url) 获取校园新闻首页html代码

import requests
#requests.get(url) 获取校园新闻首页html代码
url="http://www.gzcc.cn/";
r=requests.get(url);
r.raise_for_status();
r.encoding=r.status_code;
print(r.text);

  技术分享图片

   技术分享图片

 

3).了解网页

写一个简单的html文件,包含多个标签,类,id

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        div,span{
            font-size:20px;
            color: #0000FF;
        }
        .one{
            font-size:30px;
        }
        </style>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/jquery-1.9.0.js"></script>
        <script src="js/jsseclector.js"></script>
        
    </head>
    <body>
        <p align="center"  class="one" id="一"><font size="5" >第一章:jQuery概述</font></p>
        <span id="1-1">1.1 初识jQuery
            <div>&nbsp;&nbsp;<a href="" id="1.1.1">--1.1.1 什么是jQuery</a></div>
            <div>&nbsp;&nbsp;--1.1.2 jQuery的优势</div>
            <div>&nbsp;&nbsp;--1.1.3 下载jQuery脚本文件和配置jQuery环境</div>
            <div>&nbsp;&nbsp;--1.1.4 第一个简单的jQuery程序</div>
        </span>
        <span id="1-2">1.2 jQuery对象和DOM对象
            <div>&nbsp;&nbsp;<a href="">--2.1.1 DOM对象</a></div>
            <div>&nbsp;&nbsp;--2.1.2 jQuery对象</div>
        </span>
        <span id="1-3" >1.3 jQuery开发工具
            <div>&nbsp;&nbsp;<a href="">--3.1.1 使用Dreamweaver编辑jQuery程序</a></div>
            <div>&nbsp;&nbsp;--3.1.2 调试jQuery程序</div>
        </span>
    </body>
</html>

 

4).使用 Beautiful Soup 解析网页;

通过BeautifulSoup(html_sample,‘html.parser‘)把上述html文件解析成DOM Tree

 

import bs4
from bs4 import BeautifulSoup
html=‘‘‘<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        div,span{
            font-size:20px;
            color: #0000FF;
        }
        .thirdthSize{
            font-size:30px;
        }
        </style>
        <meta charset="UTF-8">
        <title></title>
        <script src="js/jquery-1.9.0.js"></script>
        <script src="js/jsseclector.js"></script>
        
    </head>
    <body>
        <p align="center"  class="thirdthSize" id="one"><font size="5" >第一章:jQuery概述</font></p>
        <span id="oneByone">1.1 初识jQuery
            <div>&nbsp;&nbsp;<a href="" id="oneByoneon">--1.1.1 什么是jQuery</a></div>
            <div>&nbsp;&nbsp;--1.1.2 jQuery的优势</div>
            <div>&nbsp;&nbsp;--1.1.3 下载jQuery脚本文件和配置jQuery环境</div>
            <div>&nbsp;&nbsp;--1.1.4 第一个简单的jQuery程序</div>
        </span>
        <span id="oneBytwo">1.2 jQuery对象和DOM对象
            <div>&nbsp;&nbsp;<a href="">--2.1.1 DOM对象</a></div>
            <div>&nbsp;&nbsp;--2.1.2 jQuery对象</div>
        </span>
        <span id="oneBythre" >1.3 jQuery开发工具
            <div>&nbsp;&nbsp;<a href="">--3.1.1 使用Dreamweaver编辑jQuery程序</a></div>
            <div>&nbsp;&nbsp;--3.1.2 调试jQuery程序</div>
        </span>
    </body>
</html>
‘‘‘
soup=BeautifulSoup(html,"html.parser");
#找出含有特定标签的html元素
print(soup.select("div"));
#找出含有特定类名的html元素
print(soup.select(".thirdthSize"));
#找出含有特定id名的html元素
print(soup.select("#oneBytwo"));

 

select(选择器)定位数据

找出含有特定标签的html元素

print(soup.select("div"));

 技术分享图片

找出含有特定类名的html元素

print(soup.select(".thirdthSize"));

 技术分享图片

找出含有特定id名的html元素

print(soup.select("#oneBytwo"));

 技术分享图片

3.提取一篇校园新闻的标题、发布时间、发布单位

import requests
import bs4
from bs4 import BeautifulSoup
#获取网页
url="http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html";
r=requests.get(url);
r.encoding=r.apparent_encoding;
text=r.text;
#print(text);
#解析网页
soup=BeautifulSoup(text,"html.parser");
#新闻标题
title=soup.select(".show-title");
print(title);
#发布时间与发布单位
time=soup.select(".show-info");
print(time);

 技术分享图片

技术分享图片

技术分享图片

 

理解爬虫原理

原文:https://www.cnblogs.com/bufengdianbuchengmo/p/10594449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!