对于自动化办公而言,网络数据的批量获取可以节约相当的时间,因此爬虫在自动化办公中占据了一个比较重要的位置。
因而本节针对一个爬虫项目进行介绍,力求最大程度还原实际的办公场景。
Requests是一款目前非常流行的http请求库,使用python编写,能非常方便的对网页Requests进行爬取,也是爬虫最常用的发起请求第三方库。
安装方法:
或者conda安装:
试一试对百度首页进行数据请求:
例:用爬虫下载孔乙己这篇文章,网址是https://apiv3.shanbay.com/codetime/articles/mnvdu
我们打开这个网址 可以看到是鲁迅的文章。
我们尝试着用爬虫保存文章的内容。
re.text用于文本内容的获取、下载;
re.content用于图片、视频、音频等内容的获取、下载;
re.encoding 爬取内容的编码形式,常见的编码方式有 ASCII、GBK、UTF-8 等。如果用和文件编码不同的方式去解码,我们就会得到一些乱码。
浏览器工作原理:
向浏览器中输入某个网址,浏览器会向服务器发出请求,然后服务器就会作出响应。其实,服务器返回给浏览器的这个结果就是HTML代码,浏览器会根据这个HTML代码将网页解析成平时我们看到的那样。
比如我们来看看百度的html页面:
我们会看到很多带有标签的信息。
HTML(Hyper Text Markup Language) 是一种超文本标记语言,是由一堆标记组成。
例如
上面即为一个最简单的html,我们所需要的信息就是夹在标签中。
那么我们如何解析html页面呢?
我们一般会使用BeautifulSoup这个第三方库
安装方法:
我们来解析豆瓣读书 Top250
它的网址是:https://book.douban.com/top250
headers表示我们请求的网页的头,对于没有headers的请求可能会被服务器判定为爬虫而拒绝提供服务;
通过 from bs4 import BeautifulSoup 语句导入BeautifulSoup;
然后使用 BeautifulSoup(res.text, lxmlr’) 语句将网页源代码的字符串形式解析成了 BeautifulSoup 对象;
解析成BeautifulSoup 对象可以较为方便的提取我们需要的信息。
那么如何提取信息呢?
BeautifulSoup 为我们提供了一些方法:
find()方法和find_all()方法:
HTML定位方法:https://www.cnblogs.com/bosslv/p/8992410.html
自如公寓的价格在本节不讨论,在以后的课程中,会详细讲解相关的方法。
日前 , 国务院办公厅印发《关于加快培育和发展住房租赁市场的若干意见》,你是某新媒体公司的一名员工,老板希望对武汉的租房情况进行深度调研与分析,你想调查自如公寓的数据情况。根据工作的安排,你调研的是自如公寓武汉房屋出租分析的任务。
自如公寓官网:https://wh.ziroom.com/z/z/
通过观察官网你发现
第1页的网页为:https://wh.ziroom.com/z/p1/
第2页的网页为:https://wh.ziroom.com/z/p2/
第3页的网页为:https://wh.ziroom.com/z/p3/
…
第50页的网页为:https://wh.ziroom.com/z/p50/
你继续观察,发现
房屋的信息网页为类似于:https://wh.ziroom.com/x/741955798.html
即:https://wh.ziroom.com/x/XXXX.html
因此你有了思路,通过访问自如公寓的网站,获取每个房间后面的数字号,然后通过数字号访问房屋的直接信息,然后抓取房屋的信息保存在excel中。
于是你访问了房屋的网页:https://wh.ziroom.com/x/741955798.html
通过观察房屋的网页,你发现这些信息是你需要的:
房屋的名称,房屋的面积,房屋的朝向,房屋的户型,房屋的位置,房屋的楼层,是否有电梯,房屋的年代,门锁情况,绿化情况。
但是你遇到了困难,不知道这些信息的标签信息,不能用beautifulsoup对他们进行定位,
通过百度查询,浏览器按F12时能进入源代码模式 或者 点击右键进入审查元素从而进行相关的定位。
写到这里的时候,你想到,我多次访问自如的官网,如果只用一个UA头岂不是很容易被反爬虫识别,
你想到,我可以做很多个UA头,然后每次访问的时候可以随机选一个,想到这里,你直呼自己是个天才,
于是,你到网上找到了很多UA头信息。
现在正式开始爬取数据:
房屋的名称,房屋的价格,房屋的面积,房屋的朝向,房屋的户型,房屋的位置,房屋的楼层,是否有电梯,房屋的年代,门锁情况,绿化情况
你思考爬取的信息应该保存到csv文件中,于是你导入了csv包,并简单的了解了CSV包的用法:
第一步,是要获取房屋的数字标签
于是你打开了自如的官网,用浏览器的元素进行定位
发现房屋的信息标签都是这个
< a href=“dd//wh.ziroom.com/x/741955798.html” target=“_blank”> 房屋名称< /a >
聪明的你,随手写下了这个代码,便能爬取自如前50页。
通过研究发现你需要定位的信息通过标签头 h1 li span 和class的值对标签进行定位:
通过对上面标签的研究你完成了所有的代码。
完成了上面的实践项目1后,你膨胀到不行,觉得自己太厉害了。通过前面的学习,你了解到使用python进行电子邮件的收发,突然有一天你想到,如果我用A账户进行发送,同时用B账户进行接收,在手机上安装一个邮件接收的软件,这样就能完成信息从pc端投送到移动端。
在这样的思想上,就可以对动态变化的信息进行监控,一旦信息触发了发送条件,可以将信息通过邮件投送到手机上,从而让自己最快感知到。
具体路径是:
python爬虫–>通过邮件A发送–>服务器—>通过邮件B接收
因此我们本节的内容就是爬取36kr的信息然后通过邮件发送。
36kr官网:https://36kr.com/newsflashes
通过python发送邮件需要获得pop3的授权码
具体获取方式可参考:
https://blog.csdn.net/wateryouyo/article/details/51766345
接下来就爬取36Kr的网站
通过观察我们发现 消息 的标签为
需要注意的是,邮箱发送消息用的HTML的模式,而HTML模式下换行符号为 < br>
接下来就是QQ配置邮箱的发送信息
SMTP授权码获取方式:
https://www.jb51.net/article/228888.htm
课程来源: Datawhale自动化办公课程
本篇文章主要讲解了爬虫的相关内容,对Requests模块、 BeautifulSoup做了简单的介绍,并给出了实战项目有关自如公寓数据抓取以及36kr信息抓取与邮件发送,步骤详细,收获颇多。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.bhha.com.cn/news/11392.html