网络采集(网络爬虫与数据收集)
网络采集(网络爬虫与数据收集)
不管是数据分析,还是数据建模乃至数据挖掘,在进行这些高大上的工作之前我们都要进行数据采集,数据是数据工作的基础,没有数据,挖掘也没有意义。俗话说,巧妇难为无米之炊,所以,接下来我们来聊下爬虫。
爬虫是采集外部数据的重要的方式。常用于竞对分析,也有将爬虫应用成自身的业务,如搜索引擎就是爬虫最高的应用。当然,爬虫也不是可以肆无忌惮的,一不小心可能就变成面向监狱式编程了。一、什么是爬虫?
爬虫抓取,一般是针对特定的网站或App,通过爬虫脚本或程序对指定的页面进行数据采集。是指通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。
一般而言,爬虫需要掌握一门编程语言,要了解HTML、网络服务器、数据库等知识,建议从python入门,能快速上手爬虫,并且有很多第三方的类库,能快速方便地进行网页爬虫。二、如何进行网页爬虫
1、先进行网页解析
按一下F12,即可调出网页调试界面,可以看到Element 标签下对应的 HTML代码,这些其实就是网页的代码,网页都是通过解析hmtl等源码,通过加载、渲染展示成大家看到的样子,就像穿了衣服化妆打扮的你(手动滑稽)。
我们可以进行网页元素的定位,左上角有个小按钮,点一下它然后在网页上找到你想定位的地方,就可以直接定位到此处的源码,如下图所示:
我们可以修改下源码看看,将定位到的源码处【python】改成【我是帅哥】,哎嘿,网页上就会发生不一样的变化。以上主要做科普作用,这块主要还是前端工程师的领域,所有大家看到的地方都是前端地辛苦付出,冰山下的都是后端工程师的地盘。
有点跑题了,回归正题,网页解析到了,可以定位到想要爬去的元素内容了,接下来就是调包写爬虫脚本,基本网页上能看到的都可以爬取,所见即所得。
2、程序如何访问网页
可以点击Network按钮,查看我们在浏览器搜索输入框输入一个关键词:python都经历了什么。涉及的专业内容可能过于复杂,大家感觉到的可能就是我输入了一个关键词,网页给我返回很多内容,其实中间是本地客户端发送一个get请求到服务器端,服务器端通过解析内容,中间经过TCP的三次握手,四次挥手,网络安全、加密等,最后安全地把内容返回到你本地的客户端上,是不是感觉头都开始有点大了,为了我们能快乐地在网络上冲浪,工程师们真的不容易~~
了解了这些内容,有助于帮助我们理解爬虫的机制。简单来说,就是一段程序,模拟人去登录网页,进行请求访问,找到返回的网页内容并把数据下载下来。刚才说到网页network的内容,常见的请求有get、post两种,GET请求把请求参数都暴露在URL上,而POST请求的参数放在request body 里面,POST请求方式还对密码参数加了密,这样就相对安全一些。
程序要模拟请求头(Request Header)进行访问,我们在做http请求的时候除了提交一些参数之外,还定义一些请求的头部信息,比如Accept、Host、cookie、User-Agent等等,主要就是将爬虫程序伪装成正规请求,获取情报内容。
爬虫就有点像间谍,打入地方内部,套取出我方想要的情报,此处不明觉厉,skr~~~
3、请求返回的接收信息r=requests.get('https://httpbin.org/get') r.status_code //返回200 r.headers { 'content-encoding':'gzip', 'transfer-encoding':'chunked', 'connection':'close', 'server':'nginx/1.0.4', 'x-runtime':'148ms', 'etag':'"e1ca502697e5c9317743dc078f67693f"', 'content-type':'application/json' } importrequests r=requests.get('https://api.github.com/events') r.json() //以上操作可以算是最基本的爬虫了,返回内容如下: [{u'repository':{u'open_issues':0,u'url':'https://github.com/...
通过解析返回的json字符串就可以获取到想要的数据了,恭喜~三、python自动化爬虫实战
接下来,我们来个豆瓣电影排名的爬虫实战:#!/usr/bin/envpython3 #-*-coding:utf-8-*- """ CreatedonWedJul3115:52:532019 @author:kaluosi """ importrequests importre importcodecs frombs4importBeautifulSoup fromopenpyxlimportWorkbook importpandasaspd wb=Workbook() dest_filename='电影.xlsx' ws1=wb.active ws1.title="电影top250" DOWNLOAD_URL='http://movie.douban.com/top250/' defdownload_page(url): """获取url地址页面内容""" headers={ 'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_11_2)AppleWebKit/537.36(KHTML,likeGecko)Chrome/47.0.2526.80Safari/537.36' } data=requests.get(url,headers=headers).content returndata defget_li(doc): soup=BeautifulSoup(doc,'html.parser') ol=soup.find('ol',class_='grid_view') name=[]#名字 star_con=[]#评价人数 score=[]#评分 info_list=[]#短评 foriinol.find_all('li'): detail=i.find('div',attrs={'class':'hd'}) movie_name=detail.find('span',attrs={'class':'title'}).get_text()#电影名字 level_star=i.find('span',attrs={'class':'rating_num'}).get_text()#评分 star=i.find('div',attrs={'class':'star'}) star_num=star.find(text=re.compile('评价'))#评价 info=i.find('span',attrs={'class':'inq'})#短评 ifinfo:#判断是否有短评 info_list.append(info.get_text()) else: info_list.append('无') score.append(level_star) name.append(movie_name) star_con.append(star_num) page=soup.find('span',attrs={'class':'next'}).find('a')#获取下一页 ifpage: returnname,star_con,score,info_list,DOWNLOAD_URL+page['href'] returnname,star_con,score,info_list,None defmain(): url=DOWNLOAD_URL name=[] star_con=[] score=[] info=[] whileurl: doc=download_page(url) movie,star,level_num,info_list,url=get_li(doc) name=name+movie star_con=star_con+star score=score+level_num info=info+info_list #pandas处理数据 c={'电影名称':name,'评论人数':star_con,'电影评分':score,'评论':info} data=pd.DataFrame(c) data.to_excel('豆瓣影评.xlsx') if__name__=='__main__': main()写在最后
最后说一句,本次文章的爬虫仅限于交流学
手机sd卡无法格式化(手机如何格式化sd卡)手机sd卡无法格式化(手机如何格式化sd卡)时使用内存卡的时候会突然发现由于内存卡的文件太多,需要清理下,但是有时候想格式化却无法搞定。在这个情况下我们可以试试修复并完成格式化。第
笔记本硬盘响(电脑硬盘异响)笔记本硬盘响(电脑硬盘异响)软件版本软件大小软件授权适用平台httpdl。pconline。com。cndownload137557。html电脑硬盘吱吱响的解决方法一硬盘发出异响
小米手机怎么预定(小米之家预定手机流程)小米手机怎么预定(小米之家预定手机流程)小米11Pro是小米官方即将发布的一款手机,受到了不少用户的喜爱,越是临近发售,很多用户都在咨询小编问怎么预约?那就千万不要错过小编本期带来
入木三分是什么生肖(与入木三分相关的历史人物是)入木三分是什么生肖(与入木三分相关的历史人物是)天涯明月刀手游茶话会题目答案是什么?天涯明月刀手游飞花令的答案是什么?最新最全的茶话会飞花令答题攻略已经为大家准备好了,所有的题目跟
输入法不见了?(输入法的选字框不见了)输入法不见了?(输入法的选字框不见了)电脑输入法栏不见了第一步是检查电脑桌右下角任务栏上方是否有输入法图标打开百度APP看高清图片第二步如果桌面右下角的输入法图标丢失,则无法切换输
我的心你能够明白吗(你明白我的心在燃烧)我的心你能够明白吗(你明白我的心在燃烧)机,不玩心眼。不管和谁相处,都实心实意,不管做啥事情,都实实在在,这就是心地善良的我,从没坑过谁,害过谁!我的心,很简单,没有虚伪,不会欺骗
科普下书同文车同轨什么意思关于到现在书同文车同轨什么意思这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道书同文车同轨什么意思小编也是到网上收集了一些与书同
科普下书同文车同轨什么意思关于到现在书同文车同轨什么意思这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道书同文车同轨什么意思小编也是到网上收集了一些与书同
科普下书同文车同轨什么意思关于到现在书同文车同轨什么意思这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道书同文车同轨什么意思小编也是到网上收集了一些与书同
科普下书桌面是平面对吗书桌面积怎么计算关于到现在书桌面是平面对吗书桌面积怎么计算这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道书桌面是平面对吗书桌面积怎么计算小编也
黑莓9550软件(黑莓q20软件下载专区)黑莓9550软件(黑莓q20软件下载专区)阵子闹得沸沸扬扬的WP与支付婊事件,让大家着实领会到了那1的厉害。但是,你们忘了吗,除了WP,还有另一个1仍低调存在着。在当今数码飞跃发展
启程歌词(启程歌词大意)启程歌词(启程歌词大意)04闪电新闻不一样的夏天不一样的毕业季临大学子带着满满的祝福竭尽所能云端相聚给毕业生们带来了属于他们的毕业MV愿每一个新的启程都能奔向远方!临大版启程歌词就
腊八粥的做法(传统腊八粥的8种材料)腊八粥的做法(传统腊八粥的8种材料)天是腊月初五,还有三天就是腊八节了,腊八节在民间很重视,北方人忙着剥腊八粥,煮腊八粥,时令美食,一定不会错过,南方人反响平平,对腊八节好像不怎么
奔流不息的近义词?(恍恍惚惚的近义词)奔流不息的近义词?(恍恍惚惚的近义词)盘古开天地精卫填海女娲补天一课一练,可打印202010121655茵苗教育参考答案一读拼音,写词语。翻身劈开缓慢浑浊丈夫支撑竭力劳累血液茂盛二
迷你睡莲(迷你睡莲品种)迷你睡莲(迷你睡莲品种)一花盆原则上,它和睡莲一样开口是向外的,但是花盆的开口不必与睡莲池一样大,但是必须具有一定的深度,优选大约1020厘米。二土壤对于盆栽睡莲,您可以选择直径3
春联左右怎么区分(春联到底怎么贴?)春联左右怎么区分(春联到底怎么贴?)如何区分左右,哪个是上联,哪个是下联文成长新视点对联,是中国的传统文化之一,也称楹联或对子。它有上下联之分,面对大门时,张贴在右边的为上联,张贴
清连高速最新路况(二广和许广高速连南互通)清连高速最新路况(二广和许广高速连南互通)1648光明网清连高速多处拥堵有市民开200公里花13个小时今天上午,清远辖区京港澳高速二广高速乐广高速汕昆高速广清高速行车顺畅但许广高速
大气层高度(地球大气层的高度是多少)大气层高度(地球大气层的高度是多少)地球周围环绕着一圈由气体组成的大气层,在引力约束下维持着地球的气候环境,让宇宙中我们目前所知的唯一生命,可以在这颗亮蓝色的美丽星球上,自由徜徉,
大气层多高(从地面到大气层多高)大气层多高(从地面到大气层多高)地球周围环绕着一圈由气体组成的大气层,在引力约束下维持着地球的气候环境,让宇宙中我们目前所知的唯一生命,可以在这颗亮蓝色的美丽星球上,自由徜徉,生生
科普下历史上的今天07月09日关于到现在历史上的今天07月09日这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道历史上的今天07月09日,小编也是到网上
科普下历史上的今天08月22日历史上的今天08月22日1350法国国王腓力六世逝世1485英格兰国王理查三世逝世1647压力锅离心泵的发明者丹尼斯middot帕平出生1792清朝著名思想家龚自珍出生1834美国
科普下历史上的今天07月07日关于到现在历史上的今天07月07日这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道历史上的今天07月07日,小编也是到网上