首页 > 其他 > 详细

理解爬虫原理

时间:2019-04-01 19:35:36      阅读:109      评论:0      收藏:0      [点我收藏+]

随笔缘由:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881

 

1. 简单说明爬虫原理

技术分享图片

 

 

(1)向服务器发起请求 (2)获取响应内容 (3)解析内容 (4)保存内容

2. 理解爬虫开发过程

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

  Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

  Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

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

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

import requests
url="http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0328/11086.html"
res=requests.get(url)
res.encoding=UTF-8print(res.text)

 

3).了解网页

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

<html>
<head>
<meta charset="utf-8">
<body>
<h1 id="title">标题</h1>
<p>点击一下</p>
<button type="button" id="button">按钮</button>
</body>
</head>
</html>

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

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

from bs4 import BeautifulSoup
soups = BeautifulSoup(html_sample,html.parser)
a1 =soups.a
a = soups.select(a)
print(a)
h = soups.select(h1)
print(h)
t = soups.select(#title)
print(t)
l = soups.select(.myclass)
print(l)

技术分享图片

3.提取一篇校园新闻的标题、发布时间、发布单位、作者、点击次数、内容等信息

如url = ‘http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html

要求发布时间为datetime类型,点击次数为数值型,其它是字符串类型。

select(选择器)定位数据

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

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

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

#得到标签<h1,a>的元素
t=soup.select(h1)
d=soup.select(a)
#得到指定类(time)元素
b=soup.select(.time)
#得到特定id的元素
c=soup.select(inputname)
print(t,b,c,d)

技术分享图片

 

import requestsrequests
import bs4
from bs4 import BeautifulSoup
bs4#获取特定网站数据
url="http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html‘"
res=requests.get(url)
type(res)
res.encoding="utf-8"
soup1=BeautifulSoup(res.text,html.parser)
#得到新闻标题
soup1.select(title)#得到新闻的发布时间和单位
soup1.select(.show-info)#遍历for news in soup1.select(li):if len(news.select(.news-list-title))>0:t=news.select(.news-list-title)[0].texta=news.select(a)[0][href]d=news.select(.news-list-info)[0].textprint(t)

 技术分享图片

技术分享图片

 

理解爬虫原理

原文:https://www.cnblogs.com/pang0722/p/10638236.html

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