作业要求源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881
1. 简单说明爬虫原理
请求网站并提取数据的自动化程序。
2. 理解爬虫开发过程
1:向服务器发起请求
通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器的响应。
2:获取响应内容
如果服务器正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、JSON、二进制文件(如图片、视频等类型)。
3:解析内容
得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是JSON,可以直接转成JOSN对象进行解析,可能是二进制数据,可以保存或者进一步处理
4:保存内容
保存形式多样,可以保存成文本,也可以保存至数据库,或者保存成特定格式的文件。
如果服务器正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、JSON、二进制文件(如图片、视频等类型)。
3:解析内容
得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是JSON,可以直接转成JOSN对象进行解析,可能是二进制数据,可以保存或者进一步处理
4:保存内容
保存形式多样,可以保存成文本,也可以保存至数据库,或者保存成特定格式的文件。
import requests import bs4 from bs4 import BeautifulSoup url = "http://news.gzcc.cn/html/2019/jxky_0329/11094.html" res = requests.get(url) res.encoding = 'utf-8' soupn = BeautifulSoup(res.text,'html.parser') print(soupn)
3.了解网页
写一个简单的html文件,包含多个标签,类,id
<html> <body> <h1 id="title">hi</h1> <a href="#" class="link">hi,this is link1</a> <a href="# link2" class="link" qao=957> hi,this is link2</a> </body> </html>
4.
使用 Beautiful Soup 解析网页;
通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree
5.提取一篇校园新闻的标题、发布时间、发布单位、作者、点击次数、内容等信息
代码:
import requests import bs4 from bs4 import BeautifulSoup url = "http://news.gzcc.cn/html/2019/jxky_0328/11087.html" res = requests.get(url) res.encoding = 'utf-8' soupn = BeautifulSoup(res.text,'html.parser') print("内容:"+soupn.select('.show-content')[0].text) print(soupn.title) #print(soupn.select(".show-info")[0].text.split(':')[1]) info = soupn.select(".show-info")[0].text.split() #print(info) xinDate = info[0].split(':')[1] print(xinDate) xinTime = info[1] print(xinTime) newdt = xinDate + ' '+ xinTime print(newdt) from datetime import datetime now = datetime.now() #now = now.strptime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').__format__(y='年',m='月',d='日',h='时',f='分',s='秒') now = now.strftime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(y='年',m='月',d='日',h='时',f='分',s='秒')