网络采集(网络爬虫与数据收集)
网络采集(网络爬虫与数据收集)
不管是数据分析,还是数据建模乃至数据挖掘,在进行这些高大上的工作之前我们都要进行数据采集,数据是数据工作的基础,没有数据,挖掘也没有意义。俗话说,巧妇难为无米之炊,所以,接下来我们来聊下爬虫。
爬虫是采集外部数据的重要的方式。常用于竞对分析,也有将爬虫应用成自身的业务,如搜索引擎就是爬虫最高的应用。当然,爬虫也不是可以肆无忌惮的,一不小心可能就变成面向监狱式编程了。一、什么是爬虫?
爬虫抓取,一般是针对特定的网站或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()写在最后
最后说一句,本次文章的爬虫仅限于交流学
地龙养殖(地龙养殖基地)地龙养殖(地龙养殖基地)蚯蚓养殖目前确实是个不错的项目,从去年以来发展迅猛。但养殖一点通在此提醒广大新手或想要入行的朋友,可以先小额投资试养,学好技术,掌握蚯蚓的生活习性,在养殖过
充气枕头(充气枕头怎么充气)充气枕头(充气枕头怎么充气)在办公室午休时就用设计癖安利过的那款鸵鸟枕好啦,可以经常出差的怎么办?飞来飞去的人也需要一个适合旅行用的枕头。你也许会大爱这对法国父女的设计。Diane
案例分析格式(案例分析的四个步骤)案例分析格式(案例分析的四个步骤)案例分析格式通常由八个部分组成1。摘要说明你将在论文中研究的内容,是你研究问题的概述。写下论文陈述,并总结观察结果。2。背景提供背景信息和相关事实
100米跑步技巧(100米短跑有什么技巧)100米跑步技巧(100米短跑有什么技巧)短跑运动不同于长跑运动,尤其是在竞技赛场上,短跑选手必须在很短的时间内完成起跑加速和冲刺等动作,是一项最大限度地挖掘人体机能的运动,对选手
1000米跑步技巧(1000米简易居家训练方)1000米跑步技巧(1000米简易居家训练方)在众多的体测锻炼项目中,初三体育中考项目中最让人担心的要数8001000米体测,今日给大家分享一份中考体测8001000米的注意事项。
200米世界纪录(200米纪录)200米世界纪录(200米纪录)谢震业庆祝夺冠。图Osports昨晚进行的2019年国际田联钻石联赛伦敦站,中国选手谢震业笑傲男子200米决赛,他以19秒88的成绩夺冠,打破自己保
1000米长跑技巧(1000米跑训练方法)1000米长跑技巧(1000米跑训练方法)除了日常训练增加爆发力和耐力之外,1000米的考试也是需要一定的技巧的,要注意以下几个方面1。1000米跑步,首先用85的体力进行前100
数学知识初中直角三角函数公式关于到现在初中直角三角函数公式这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道初中直角三角函数公式小编也是到网上收集了一些与初中
数学知识初中三角函数转换公式关于到现在初中三角函数转换公式这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道初中三角函数转换公式小编也是到网上收集了一些与初中
数学知识三角函数公式初中定理关于到现在三角函数公式初中定理这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道三角函数公式初中定理小编也是到网上收集了一些与三角
科普下asa能证三角形全等吗关于到现在asa能证三角形全等吗这个话题相信很多小伙伴都是非常有兴趣了解的吧因为这个话题也是近期非常火热的那么既然现在大家都想要知道asa能证三角形全等吗小编也是到网上收集了一些与
隋唐演义李元霸(隋唐演义李元霸被雷劈)隋唐演义李元霸(隋唐演义李元霸被雷劈)引言隋朝时代是很精彩的年代,有很多电视剧中都选择这一时期为背景,这就可以清晰表明这一点。这一时期唐太宗在大家心里的印像是一代明君,也有一些著名
李元霸怎么死的(历史上李元霸怎么死的)李元霸怎么死的(历史上李元霸怎么死的)导语小说中的李元霸最后死于一名大内高手,并不是死于雷击。那么今天就来讲一讲这个李元霸的故事,李元霸到底是历史上的人物还是虚构的呢?他最后是被什
刘翔罗伯斯(罗伯斯拉刘翔的比赛结果)刘翔罗伯斯(罗伯斯拉刘翔的比赛结果)要说历史上最伟大的110米栏比赛是哪一场?可能众说纷纭,但有一场比赛不应该被忽视,那就是2006年世界田径总决赛斯图加特男子110米栏决赛,刘翔
刘翔前女友(葛天为什么和刘翔分手)刘翔前女友(葛天为什么和刘翔分手)叶师傅看八卦2021053119515月31日,刘翔前妻葛天在个人社交平台上晒出了一组合照,并且配文称顺利杀青,半城花语伴君离。照片中的她气色看起
刘翔前女友(葛天为什么和刘翔分手)刘翔前女友(葛天为什么和刘翔分手)叶师傅看八卦2021053119515月31日,刘翔前妻葛天在个人社交平台上晒出了一组合照,并且配文称顺利杀青,半城花语伴君离。照片中的她气色看起
早餐食谱大全图片(早餐炒菜食谱大全)早餐食谱大全图片(早餐炒菜食谱大全)对于学生和上班族来讲,早餐是一日三餐中最重要的一餐。只有早餐吃饱吃好,才能有更好的状态进行一上午的学习和工作。我家就是这样,孩子上学,大人上班,
六一游戏(盘点六一的那些小游戏)六一游戏(盘点六一的那些小游戏)随着社会的飞速发展,现在的孩子们玩的游戏都是王者荣耀和平精英等等,你还记得小时候玩的那些游戏吗?让我们一起来回忆回忆属于我们的童趣。还记得小时候过六
炫舞小游戏大全(4399小游戏炫舞)炫舞小游戏大全(4399小游戏炫舞)IT之家3月11日消息腾讯首款手机版端游炫舞时代云游版已经开启内测招募,首次内测定于3月23日。据官方介绍,炫舞时代云游版可轻松跨端畅玩,手机上
斗鱼看不到弹幕(斗鱼直播全屏没弹幕)斗鱼看不到弹幕(斗鱼直播全屏没弹幕)3月25日,时隔400多天,那一只英雄联盟最骚的骚猪终于回来了。晚上8点整,PDD准时开启了斗鱼的直播间,人气一度达到了1。3个亿。不过,由于人
密码箱怎么开(行李箱3位数密码锁快速开)密码箱怎么开(行李箱3位数密码锁快速开)在的行李箱很多都带有密码锁,行李箱忘记密码了怎么办?很多人都遇到过,今天小编就来教你怎么打开。一长条转锁1把箱子反过来放,旋转齿轮如图所示,
幂念什么(幂字怎么读)幂念什么(幂字怎么读)数学笔记方根和二次根式原创202107200234千纸绫用基本运算符号把数或表示数的字母连接起来的式子,称为代数式。基本运算包括加减乘除乘方和开方,其中,乘方