作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881

1. 简单说明爬虫原理

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

2. 理解爬虫开发过程

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

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

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

import requests
url = 'http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'
res = requests.get(url)
type(res)
res.encoding ='utf-8'
soupn = BeautifulSoup(res.text,'html.parser') # html 规格打印
print(soupn)

截图:

3).了解网页

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

html_sample = ' \
<html> \
<body> \
<h1 id="title">Hello</h1> \
<a href="#" class="link"> This is link1</a>\
<a href="# link2" class="link" qao=123> This is link2</a>\
</body> \
</html> '
# 各种查询方式
a = soupn.select('a') # 使用标签节点a查询
ids = soupn.select('#id') # 使用id号查询
classs = soupn.select('.class') # 使用class类查询
print(a,ids,classs)

  

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

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

select(选择器)定位数据

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

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

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

idchaxun = soupn.select('#content')[0].text
biaoqianchaxun = soupn.select('img')[0]['src']
leichaxun = soupn.select('.show-info')[0].text
print(idchaxun,biaoqianchaxun,leichaxun)

截图:

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

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

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

下载:requests、BeautifulSoup4库

获取网页游览次数请求的url:

clickUrl='http://oa.gzcc.cn/api.php?op=count&id=11029&modelid=80'
b = requests.get(clickUrl).text
b2 = requests.get(clickUrl).text.split('.html')[-1]
print(b2)

 完整代码:

from datetime import datetime

import requests
from bs4 import BeautifulSoup
url = 'http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'
res = requests.get(url)
type(res)
res.encoding = 'utf-8'
soupn = BeautifulSoup(res.text,'html.parser') # html 规格打印 q = soupn.title.text # 标题
soupn1 = soupn.select('.show-info')[0].text # 作者与发布时间等信息 # 时间转化为datetime类型
time1 = soupn.select('.show-info')[0].text.split()[0].split(':')[1]
time2 = soupn.select('.show-info')[0].text.split()[1]
Time = time1 + ' ' + time2
Time1 = datetime.strptime(Time, '%Y-%m-%d %H:%M:%S')
Time2 = datetime.strftime(Time1, '%Y{y}-%m{m}-%d{d} %H{H}%M{M}%S{S}').format(y='年', m='月', d='日', H='时', M='分', S='秒') Zuozhe = soupn.select('.show-info')[0].text.split()[2] # 作者
shenhe = soupn.select('.show-info')[0].text.split()[3] # 审核
laiyuan = soupn.select('.show-info')[0].text.split()[4] # 来源 # 游览次数
clickUrl='http://oa.gzcc.cn/api.php?op=count&id=11029&modelid=80'
b = requests.get(clickUrl).text.split('.html')[-1] # 获取总游览次数
sel = "();''"
for i in sel:
b = b.replace(i, '') zhengwen = soupn.select('.show-content')[0].text print("\n"+"标题:"+q+"\n"+"发布时间:"+Time2+"\n"+
Zuozhe+"\n"+shenhe+"\n"+laiyuan+"\n"+
"游览次数:"+b+"\n"+"正文:"+zhengwen)

效果截图:

菜鸟学IT之python网页爬取初体验的更多相关文章

  1. 菜鸟学IT之python网页爬取多页爬取

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3002 0.从新闻url获取点击次数,并整理成函数 newsUrl news ...

  2. 菜鸟学IT之豆瓣爬取初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 可以用pandas读出之前保存的数据: newsdf = pd.re ...

  3. python 网页爬取数据生成文字云图

    1. 需要的三个包: from wordcloud import WordCloud #词云库 import matplotlib.pyplot as plt #数学绘图库 import jieba; ...

  4. python之爬取网页数据总结(一)

    今天尝试使用python,爬取网页数据.因为python是新安装好的,所以要正常运行爬取数据的代码需要提前安装插件.分别为requests    Beautifulsoup4   lxml  三个插件 ...

  5. python连续爬取多个网页的图片分别保存到不同的文件夹

      python连续爬取多个网页的图片分别保存到不同的文件夹 作者:vpoet mail:vpoet_sir@163.com #coding:utf-8 import urllib import ur ...

  6. Python和BeautifulSoup进行网页爬取

    在大数据.人工智能时代,我们通常需要从网站中收集我们所需的数据,网络信息的爬取技术已经成为多个行业所需的技能之一.而Python则是目前数据科学项目中最常用的编程语言之一.使用Python与Beaut ...

  7. 大神:python怎么爬取js的页面

    大神:python怎么爬取js的页面 可以试试抓包看看它请求了哪些东西, 很多时候可以绕过网页直接请求后面的API 实在不行就上 selenium (selenium大法好) selenium和pha ...

  8. python定时器爬取豆瓣音乐Top榜歌名

    python定时器爬取豆瓣音乐Top榜歌名 作者:vpoet mail:vpoet_sir@163.com 注:这些小demo都是前段时间为了学python写的,现在贴出来纯粹是为了和大家分享一下 # ...

  9. python大规模爬取京东

    python大规模爬取京东 主要工具 scrapy BeautifulSoup requests 分析步骤 打开京东首页,输入裤子将会看到页面跳转到了这里,这就是我们要分析的起点 我们可以看到这个页面 ...

随机推荐

  1. selenium+谷歌无头浏览器爬取网易新闻国内板块

    网页分析 首先来看下要爬取的网站的页面 查看网页源代码:你会发现它是由js动态加载显示的 所以采用selenium+谷歌无头浏览器来爬取它 1 加载网站,并拖动到底,发现其还有个加载更多 2 模拟点击 ...

  2. 从壹开始微服务 [ DDD ] 之七 ║项目第一次实现 & CQRS初探

    前言 哈喽大家周五好,我们又见面了,感谢大家在这个周五读我的文章,经过了三周的时间,当然每周两篇的速度的情况下,咱们简单说了下DDD领域驱动设计的第一部分,主要包括了,<项目入门DDD架构浅析& ...

  3. Vue.js-07:第七章 - Vue 实例的生命周期

    一.前言  在之前的 Vue 学习中,我们在使用 Vue 时,都会创建一个 Vue 的实例,而每个 Vue 实例在被创建时都要经过一系列的初始化过程.例如,需要设置数据监听.编译模板.将实例挂载到 D ...

  4. 【重学计算机】机组D6章:中央处理器

    1. CPU的组成与功能 2. 数据通路 概念:执行部件间传送信息的路径,分共享通路(总线)和专用通路 抽象模型:时钟驱动下,A --> 组合逻辑 --> B D触发器定时模型: 时钟触发 ...

  5. Nginx安装与代理

    1.第一步 - 添加Nginx存储库 要添加CentOS 7 EPEL存储库,请打开终端并使用以下命令: sudo yum install epel-release 2.第二步 - 安装Nginx 现 ...

  6. .NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.预备知识:数据一致性 关于数据一致性的文章,园子里已经有很多了,如果你还不了解,那么可以通过以下的几篇文章去快速地了解了解,有个感性认 ...

  7. github仓库的使用

    业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 远程仓库地址是:https://github.com/BinGuo66 ...

  8. 图像检索(2):均值聚类-构建BoF

    在图像检索时,通常首先提取图像的局部特征,这些局部特征通常有很高的维度(例如,sift是128维),有很多的冗余信息,直接利用局部特征进行检索,效率和准确度上都不是很好.这就需要重新对提取到的局部特征 ...

  9. NFS服务和DHCP服务讲解(week3_day2)--技术流ken

    NFS服务端概述 NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS: NFS允许一个系统在网络上与他人共享目录 ...

  10. Linux权限管理(week1_day5)--技术流ken

    权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...