python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!
一、什么叫爬虫
爬虫,又名"网络爬虫",就是能够自动访问互联网并将网站内容下载下来的程序。它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的然后存储到云端,为网友提供优质的搜索服务的。
二、爬虫有什么用
你可能会说,除了做搜索引擎的公司,学爬虫有什么用呢?哈哈,总算有人问到点子上了。打个比方吧:企业A建了个用户论坛,很多用户在论坛上留言讲自己的使用体验等等。现在A需要了解用户需求,分析用户偏好,为下一轮产品迭代更新做准备。那么数据如何获取,当然是需要爬虫软件从论坛上获取咯。所以除了百度、GOOGLE之外,很多企业都在高薪招聘爬虫工程师。你到任何招聘网站上搜"爬虫工程师"看看岗位数量和薪资范围就懂爬虫有多热门了。
三、爬虫的原理
发起请求:通过HTTP协议向目标站点发送请求(一个request),然后等待目标站点服务器的响应。
获取响应内容:如果服务器能正常响应,会得到一个Response。Response的内容便是所要获取的页面内容,响应的内容可能有HTML,Json串,二进制数据(如图片视频)等等。
解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析;可能是Json,可以直接转为Json对象解析;可能是二进制数据,可以做保存或者进一步的处理。
保存数据:数据解析完成后,将保存下来。既可以存为文本文档、可以存到数据库中。
四、Python爬虫实例
前面介绍了爬虫的定义、作用、原理等信息,相信有不少小伙伴已经开始对爬虫感兴趣了,准备跃跃欲试呢。那现在就来上"干货",直接贴上一段简单Python爬虫的代码:
1.前期准备工作:安装Python环境、安装PYCHARM软件、安装MYSQL数据库、新建数据库exam、在exam中建一张用于存放爬虫结果的表格house [SQL语句:create table house(price varchar(88),unit varchar(88),area varchar(88));]
2.爬虫的目标:爬取某租房网上首页中所有链接里的房源的价格、单位及面积,然后将爬虫结构存到数据库中。
3.爬虫源代码:如下
首先,"工欲善其事必先利其器",用 Python 写爬虫程序也是一样的道理,写爬虫过程中需要导入各种库文件,正是这些及其有用的库文件帮我们完成了爬虫的大部分工作,我们只需要调取相关的借口函数即可。导入的格式就是 import 库文件名。这里要注意的是在 PYCHARM 里安装库文件,可以通过光标放在库文件名称上,同时按ctrl+alt 键的方式来安装,也可以通过命令行(Pip install 库文件名)的方式安装,如果安装失败或者没有安装,那么后续爬虫程序肯定会报错的。在这段代码里,程序前五行都是导入相关的库文件:requests 用于请求 URL 页面内容;BeautifulSoup 用来解析页面元素;pymysql 用于连接数据库;time 包含各种时间函数;lxml 是一个解析库,用于解析 HTML、XML 格式的文件,同时它也支持 XPATH 解析。
其次,我们从代码最后的主程序开始看整个爬虫流程:
通过 get_db 函数连接数据库。再深入到 get_db 函数内部,可以看到是通过调用Pymysql 的 connect 函数来实现数据库的连接的,这里**seting 是 Python 收集关键字参数的一种方式,我们把数据库的连接信息写到一个字典 DataBase 里了,将字典里的信息传给 connect 做实参。
通过 get_links 函数,获取链家网租房首页的所有房源的链接。所有房源的链接以列表形式存在 Links 里。get_links 函数先通过 requests 请求得到链家网首页页面的内容,再通过 BeautifuSoup 的接口来整理内容的格式,变成它可以处理的格式。最后通过电泳find_all 函数找到所有包含图片的 div 样式,再通过一个 for 循环来获得所有 div 样式里包含的超链接页签(a)的内容(也就是 href 属性的内容),所有超链接都存放在列表links 中。
通过 FOR 循环,来遍历 links 中的所有链接(比如其中一个链接是:https://bj.lianjia.com/zufang/101101570737.html)
用和 2)同样的方法,通过使用 find 函数进行元素定位获得 3)中链接里的价格、单位、面积信息,将这些信息写到一个字典 Info 里面。
调用 insert 函数将某一个链接里得到的 Info 信息写入数据库的 house 表中去。深入到 insert 函数内部,我们可以知道它是通过数据库的游标函数 cursor()来执行一段 SQL语句然后数据库进行 commit 操作来实现响应功能。这里 SQL 语句的写法比较特殊,用到了 format 函数来进行格式化,这样做是为了便于函数的复用。
最后,运行一下爬虫代码,可以看到链家网的首页所有房源的信息都写入到数据里了。(注:test 是我手动指定的测试字符串)
后记:其实 Python 爬虫并不难,熟悉整个爬虫流程之后,就是一些细节问题需要注意,比如如何获取页面元素、如何构建 SQL 语句等等。遇到问题不要慌,看 IDE 的提示就可以一个个地消灭 BUG,最终得到我们预期的结构。
python爬虫案例-Python爬取租房数据实例,据说可以入门爬虫的小案例!相关推荐
- jsoup爬虫技术及爬取微博数据实例
最近实现了一个爬取微博数据的小程序,借此对爬虫技术 jsoup的使用,以及实际开发过程中的细节进行总结. jsoup的jar包下载地址:https://jsoup.org/download 首先,对于 ...
- Python爬取租房数据实例,据说可以入门爬虫的小案例!
一.什么叫爬虫 爬虫,又名"网络爬虫",就是能够自动访问互联网并将网站内容下载下来的程序.它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的 ...
- 一小时入门Python爬虫,连我都会了!Python爬取租房数据实例
一.什么叫爬虫 爬虫,又名"网络爬虫",就是能够自动访问互联网并将网站内容下载下来的程序.它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的 ...
- python爬虫——使用selenium爬取微博数据(一)
python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...
- python爬虫,记录爬取全球所有国家-首都的简单爬虫
python爬虫,记录爬取全球所有国家-首都的简单爬虫 本来以为简单至极,没想到获取数据还是花费了大把功夫.先上图 <table> <tr> <td> <st ...
- python爬虫scrapy框架爬取网页数据_Scrapy-Python
scrapy Scrapy:Python的爬虫框架 实例Demo 抓取:汽车之家.瓜子.链家 等数据信息 版本+环境库 Python2.7 + Scrapy1.12 初窥Scrapy Scrapy是一 ...
- 不会Python爬虫?教你一个通用爬虫思路轻松爬取网页数据,赶紧收藏!!
前言 其实爬虫的思路很简单,但是对于很多初学者而言,看得懂,但是自己写的时候就不知道怎么去分析了!说实话还是写少了,自己不要老是抄代码,多动手! 其实一个爬虫无非就三步:下载数据.解析数据.保存数据. ...
- Python爬虫进阶之爬取篮球赛数据
相信很多人都喜欢打篮球, 并且对自己喜欢的球星的比赛数据都很关注,于是我就想着去爬取篮球网站的数据.但是相对来说爬取一个数据也没啥挑战性,于是我又赶着学习了xlsxwriter模块,将爬取的的数据放入 ...
- Python爬虫项目:爬取JSON数据存储Excel表格与存储图片
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战.搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Googl ...
最新文章
- Flutter 构建完整应用手册-动画
- KeilKill.bat删除keil编译生成的过程文件
- oa提醒模块要素_OA办公系统的选型有哪些要素?OA系统如何给企业带来巨大价值?...
- 元宇宙大比拼:苹果Apple, Facebook,微软,英伟达,iwemeta
- 简述sqlite数据库的特点_为什么要用SQLITE?SQLITE数据库优点和缺点分析
- 【CyberSecurityLearning 附】Docker 初识
- 成功的前提,35岁前必须做好的十件事
- Ubuntu18.04提示wifi无法连接
- 嵌入式软件开发工程师谈软件架构的设计
- 临时表空间和数据表空间
- java数组和集合的区别_java中数组和集合的区别是什么?
- temp的作用c语言,temp的使用
- python读feather格式文件
- Unity3D —— 手机设备震动接口
- 印象笔记、为知笔记、有道云笔记使用比较
- 从显示一张图片开始学习OpenGL ES
- java语言程序设计-基础篇
- 客户端伪造代理服务器ip进行sql注入
- Kotlin 中的 appy和with方法
- em算法直观_直观地解释了10种图形算法