欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    你是如何开始能写python爬虫.docx

    • 资源ID:1666385       资源大小:241.37KB        全文页数:36页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    你是如何开始能写python爬虫.docx

    你是如何开始能写python爬虫?你是如何开始能写python爬虫?看完了简明教程和笨办法学python,想写爬虫,无从做起,需要继续看什么书和练习高野良行业分析 / Pythoner / 爬虫写的特别快 / 机器学习入门中716 人赞同了该回答看了大部分回答不禁叹口气,主要是因为看到很多大牛在回答像“如何入门爬虫”这种问题的时候,一如当年学霸讲解题目,跳步无数,然后留下一句“不就是这样推嘛”,让一众小白菜鸟一脸懵逼。作为一个0起步(之前连python都不会),目前总算掌握基础,开始向上进阶的菜鸟,深知其中的不易,所以我会在这个回答里,尽可能全面、细节地分享给大家从0学习爬虫的各种步骤,如果对你有帮助,请点赞-#我要写爬虫!#Ver.1.2 #Based on: Python 2.7#Author:高野良#原创内容,转载请注明出处首先!你要对爬虫有个明确的认识,这里引用毛主席的思想:在战略上藐视:· “所有网站皆可爬”:互联网的内容都是人写出来的,而且都是偷懒写出来的(不会第一页是a,下一页是8),所以肯定有规律,这就给人有了爬取的可能,可以说,天下没有不能爬的网站· “框架不变”:网站不同,但是原理都类似,大部分爬虫都是从 发送请求获得页面解析页面下载内容储存内容 这样的流程来进行,只是用的工具不同在战术上重视:· 持之以恒,戒骄戒躁:对于初学入门,不可轻易自满,以为爬了一点内容就什么都会爬了,爬虫虽然是比较简单的技术,但是往深学也是没有止境的(比如搜索引擎等)!只有不断尝试,刻苦钻研才是王道!(为何有种小学作文即视感)|V然后,你需要一个宏伟的目标,来让你有持续学习的动力(没有实操项目,真的很难有动力)我要爬整个豆瓣!.我要爬整个草榴社区!我要爬知乎各种妹子的联系方式*&#%$#|V接着,你需要扪心自问一下,自己的python基本功吼不吼啊?吼啊!OK,开始欢快地学习爬虫吧 !不吼?你还需要学习一个!赶紧回去看廖雪峰老师的教程,2.7的。至少这些功能和语法你要有基本的掌握 :· list,dict:用来序列化你爬的东西· 切片:用来对爬取的内容进行分割,生成· 条件判断(if等):用来解决爬虫过程中哪些要哪些不要的问题· 循环和迭代(for while ):用来循环,重复爬虫动作· 文件读写操作:用来读取参数、保存爬下来的内容等|V然后,你需要补充一下下面几个内容,作为你的知识储备:(注:这里并非要求“掌握”,下面讲的两点,只需要先了解,然后通过具体项目来不断实践,直到熟练掌握)1、网页的基本知识:基本的HTML语言知识(知道href等大学计算机一级内容即可)理解网站的发包和收包的概念(POST GET)稍微一点点的js知识,用于理解动态网页(当然如果本身就懂当然更好啦)2、一些分析语言,为接下来解析网页内容做准备NO.1 正则表达式:扛把子技术,总得会最基础的:NO.2 XPATH:高效的分析语言,表达清晰简单,掌握了以后基本可以不用正则参考:XPath 教程NO.3 Beautifulsoup:美丽汤模块解析网页神器,一款神器,如果不用一些爬虫框架(如后文讲到的scrapy),配合request,urllib等模块(后面会详细讲),可以编写各种小巧精干的爬虫脚本官网文档:Beautiful Soup 4.2.0 文档参考案例:|V接着,你需要一些高效的工具来辅助(同样,这里先了解,到具体的项目的时候,再熟悉运用)NO.1 F12 开发者工具:· 看源代码:快速定位元素· 分析xpath:1、此处建议谷歌系浏览器,可以在源码界面直接右键看NO.2 抓包工具:· 推荐httpfox,火狐浏览器下的插件,比谷歌火狐系自带的F12工具都要好,可以方便查看网站收包发包的信息NO.3 XPATH CHECKER (火狐插件):非常不错的xpath测试工具,但是有几个坑,都是个人踩过的,在此告诫大家:1、xpath checker生成的是绝对路径,遇到一些动态生成的图标(常见的有列表翻页按钮等),飘忽不定的绝对路径很有可能造成错误,所以这里建议在真正分析的时候,只是作为参考2、记得把如下图xpath框里的“x:”去掉,貌似这个是早期版本xpath的语法,目前已经和一些模块不兼容(比如scrapy),还是删去避免报错NO.4 正则表达测试工具:在线正则表达式测试 ,拿来多练练手,也辅助分析!里面有很多现成的正则表达式可以用,也可以进行参考!|Vok!这些你都基本有一些了解了,现在开始进入抓取时间,上各种模块吧!python的火,很大原因就是各种好用的模块,这些模块是居家旅行爬网站常备的urlliburllib2requests|V不想重复造轮子,有没有现成的框架?华丽丽的scrapy(这块我会重点讲,我的最爱)|V遇到动态页面怎么办?selenium(会了这个配合scrapy无往不利,是居家旅行爬网站又一神器,下一版更新的时候会着重安利,因为这块貌似目前网上的教程还很少)phantomJS(不显示网页的selenium)|V遇到反爬虫策略验证码之类咋整?(不想折腾的直接第四个)PILopencvpybrain打码平台|V然后是数据库,这里我认为开始并不需要非常深入,在需要的时候再学习即可mysqlmongodbsqllite|V爬来的东西怎么用?numpy 数据分析,类似matlab的模块pandas(基于numpy的数据分析模块,相信我,如果你不是专门搞TB级数据的,这个就够了)|V进阶技术多线程、分布式 乱入的分割线 然后学习编程关键的是学以致用,天天捧一本书看不如直接上手操练,下面我通过实际的例子来讲解爬虫比如最近,楼主在豆瓣上认识了一个很可爱的妹子,发现她一直会更新签名和日志,所以没事就会去她主页看看,但一直没有互相加好友(作为一只高冷的天蝎,怎么可以轻易加好友嘛!而且加了好友,你更新什么都会收到推送,那多没意思啊!一点神秘感都没有了!),可还是想及时获得妹子的最新动态,怎么办?于是我就写了个70几行的python脚本,包含爬虫+邮件模块,跑在家里的一台闲置笔记本上,通过计划任务每准点抓取妹子的签名和最新文章一次,发送到我的邮箱。嗯,其实是很简单的技术,代码如下所示:#-*-coding:utf-8-*- #编码声明,不要忘记!import requests #这里使用requests,小脚本用它最合适!from lxml import html #这里我们用lxml,也就是xpath的方法#豆瓣模拟登录,最简单的是cookie,会这个方法,80%的登录网站可以搞定cookie = raw_cookies = ''#引号里面是你的cookie,用之前讲的抓包工具来获得for line in raw_cookies.split(''):key,value = line.split("=", 1)cookiekey = value #一些格式化操作,用来装载cookies#重点来了!用requests,装载cookies,请求网站page = requests.get('#妹纸的豆瓣主页#',cookies=cookie)#对获取到的page格式化操作,方便后面用XPath来解析tree = html.fromstring(page.text)#XPath解析,获得你要的文字段落!intro_raw = tree.xpath('/spanid="intro_display"/text()')#简单的转码工作,这步根据需要可以省略for i in intro_raw:intro = i.encode('utf-8')print intro #妹子的签名就显示在屏幕上啦#接下来就是装载邮件模块,因为与本问题关联不大就不赘述啦怎么样是不是很简单说说我的经历吧我最早是爬虾米,想看看虾米听的比较多的歌是哪些,就爬了虾米全站的歌曲播放数,做了个统计Python爬虫学习记录(1)Xiami全站播放数统计过豆瓣动漫的评分分布豆瓣2100部动漫页面的网页源码(包括评分,导演,类型,简介等信息,附抓取代码)爬百度歌词,做LDAPython爬虫学习记录(2)LDA处理歌词百度音乐带标签,作曲,演唱者,类别的歌词数据爬足彩网站所有盘口,找赢钱算法Python爬虫学习记录(4)传说中的足彩倍投法。好像也不是那么靠谱20112013.5全球所有足球比赛比分数据以及足彩各公司盘口初期不需要登录的网站比较简单,掌握http get post和urllib怎么模拟,掌握lxml、BeautifulSoup等parser库就可以了,多用firefox的firebug或者chrome的调试工具看浏览器是怎么发包的。上面都是不需要登录不需要下文件就可以做到的。之后你可能想要下载文件(图片,音乐,视频等),这个可以试试爬虾米歌曲Python爬虫学习记录(3)用Python获取虾米加心歌曲,并获取MP3下载地址爬wallbase壁纸最近做了个avfun的视频排行,每天定时抓几次acfun,然后下载视频到服务器缓存。Python爬虫学习记录(5)python mongodb + 爬虫 + web.py 的acfun视频排行榜202.120.39.152:8888然后你可能需要模拟用户登录,爬取需要登录的网站(比如人人,新浪微博)。如果只是小规模爬虫建议用浏览器cookie模拟登录Python爬虫学习记录(0)Python 爬虫抓站 记录(虾米,百度,豆瓣,新浪微博)=想说的是,不要为了学而学,可以看看有什么以前觉着很麻烦的操作,是不是能用爬虫简化。爬下来的数据是不是有排序筛选分析的价值。2015-8-31,在csdn上更新了之前失效的百度空间链接,可能有些代码因为网站的改版不适用了,这里主要还是提供一些应用的想法。编辑于 2015-08-3141432 条评论分享收藏感谢知乎用户164 人赞同了该回答Python入门网络爬虫之精华版Python学习网络爬虫主要分3个大的版块:抓取,分析,存储另外,比较常用的爬虫框架Scrapy,这里最后也详细介绍一下。首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入宁哥的小站专注数据挖掘、机器学习方向。,你就会看到宁哥的小站首页。简单来说这段过程发生了以下四个步骤:· 查找域名对应的IP地址。· 向IP对应的服务器发送请求。· 服务器响应请求,发回网页内容。· 浏览器解析网页内容。网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。抓取这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。1. 最基本的抓取抓取大多数情况属于get请求,即直接从对方服务器上获取数据。首先,Python中自带urllib及urllib2这两个模块,基本上能满足一般的页面抓取。另外,requests也是非常有用的包,与此类似的,还有httplib2等等。Requests: import requests response = requests.get(url) content = requests.get(url).content print "response headers:", response.headers print "content:", contentUrllib2: import urllib2 response = urllib2.urlopen(url) content = urllib2.urlopen(url).read() print "response headers:", response.headers print "content:", contentHttplib2: import httplib2 http = httplib2.Http() response_headers, content = http.request(url, 'GET') print "response headers:", response_headers print "content:", content此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url和传输数据,多个参数用&连接。data = 'data1':'XXXXX', 'data2':'XXXXX'Requests:data为dict,json import requests response = requests.get(url=url, params=data)Urllib2:data为string import urllib, urllib2 data = urllib.urlencode(data) full_url = url+'?'+data response = urllib2.urlopen(full_url)相关参考:网易新闻排行榜抓取回顾参考项目:网络爬虫之最基本的爬虫:爬取网易新闻排行榜2. 对于登陆情况的处理2.1 使用表单登陆这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。data = 'data1':'XXXXX', 'data2':'XXXXX'Requests:data为dict,json import requests response = requests.post(url=url, data=data)Urllib2:data为string import urllib, urllib2 data = urllib.urlencode(data) req = urllib2.Request(url=url, data=data) response = urllib2.urlopen(req)2.2 使用cookie登陆使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。因此,需要验证码的情况可以使用带验证码登陆的cookie解决。import requests requests_session = requests.session() response = requests_session.post(url=url_login, data=data)若存在验证码,此时采用response = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:response_captcha = requests_session.get(url=url_login, cookies=cookies)response1 = requests.get(url_login) # 未登陆response2 = requests_session.get(url_login) # 已登陆,因为之前拿到了Response Cookie!response3 = requests_session.get(url_results) # 已登陆,因为之前拿到了Response Cookie!相关参考:网络爬虫-验证码登陆参考项目:网络爬虫之用户名密码及验证码登陆:爬取知乎网站3. 对于反爬虫机制的处理3.1 使用代理适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。proxies = 'http':'http:/XX.XX.XX.XX:XXXX'Requests: import requests response = requests.get(url=url, proxies=proxies)Urllib2: import urllib2 proxy_support = urllib2.ProxyHandler(proxies) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) # 安装opener,此后调用urlopen()时都会使用安装过的opener对象 response = urllib2.urlopen(url)3.2 时间设置适用情况:限制频率情况。Requests,Urllib2都可以使用time库的sleep()函数:import timetime.sleep(1)3.3 伪装成浏览器,或者反“反盗链”有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。headers = 'User-Agent':'XXXXX' # 伪装成浏览器访问,适用于拒绝爬虫的网站headers = 'Referer':'XXXXX'headers = 'User-Agent':'XXXXX', 'Referer':'XXXXX'Requests: response = requests.get(url=url, headers=headers)Urllib2: import urllib, urllib2 req = urllib2.Request(url=url, headers=headers) response = urllib2.urlopen(req)4. 对于断线重连不多说。def multi_session(session, *arg): retryTimes = 20 while retryTimes>0: try: return session.post(*arg) except: print '.', retryTimes -= 1或者def multi_open(opener, *arg): retryTimes = 20 while retryTimes>0: try: return opener.open(*arg) except: print '.', retryTimes -= 1这样我们就可以使用multi_session或multi_open对爬虫抓取的session或opener进行保持。5. 多进程抓取这里针对华尔街见闻进行并行抓取的实验对比:Python多进程抓取 与 Java单线程和多线程抓取相关参考:关于Python和Java的多进程多线程计算方法对比6. 对于Ajax请求的处理对于“加载更多”情况,使用Ajax来传输很多数据。它的工作原理是:从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载更多的内容,“填充”到网页里。这就是为什么如果你直接去爬网页本身的url,你会找不到页面的实际内容。这里,若使用Google Chrome分析”请求“对应的链接(方法:右键审查元素Network清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制Request URL),循环过程。· 如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。· 对返回的json格式数据(str)进行正则匹配。json格式数据中,需从'uxxxx'形式的unicode_escape编码转换成u'uxxxx'的unicode编码。7. 自动化测试工具SeleniumSelenium是一款自动化测试工具。它能实现操纵浏览器,包括字符填充、鼠标点击、获取元素、页面切换等一系列操作。总之,凡是浏览器能做的事,Selenium都能够做到。这里列出在给定城市列表后,使用selenium来动态抓取去哪儿网的票价信息的代码。参考项目:网络爬虫之Selenium使用代理登陆:爬取去哪儿网站8. 验证码识别对于网站有验证码的情况,我们有三种办法:· 使用代理,更新IP。· 使用cookie登陆。· 验证码识别。使用代理和使用cookie登陆之前已经讲过,下面讲一下验证码识别。可以利用开源的Tesseract-OCR系统进行验证码图片的下载及识别,将识别的字符传到爬虫系统进行模拟登陆。当然也可以将验证码图片上传到打码平台上进行识别。如果不成功,可以再次更新验证码识别,直到成功为止。参考项目:验证码识别项目第一版:Captcha1爬取有两个需要注意的问题:· 如何监控一系列网站的更新情况,也就是说,如何进行增量式爬取?· 对于海量数据,如何实现分布式爬取?分析抓取之后就是对抓取的内容进行分析,你需要什么内容,就从中提炼出相关的内容来。常见的分析工具有正则表达式,BeautifulSoup,lxml等等。存储分析出我们需要的内容之后,接下来就是存储了。我们可以选择存入文本文件,也可以选择存入MySQL或MongoDB数据库等。存储有两个需要注意的问题:· 如何进行网页去重?· 内容以什么形式存储?ScrapyScrapy是一个基于Twisted的开源的Python爬虫框架,在工业中应用非常广泛。相关内容可以参考基于Scrapy网络爬虫的搭建,同时给出这篇文章介绍的微信搜索爬取的项目代码,给大家作为学习参考。参考项目:使用Scrapy或Requests递归抓取微信搜索结果编辑于 2016-12-261645 条评论分享收藏感谢收起知乎用户12 人赞同了该回答没想到我也有在知乎上回答爬虫问题的一天,毕竟之前python爬虫风气已经被某些人搞臭了。所以既然动笔,就希望能够写一篇走心的回答。我最开始能写爬虫,那是在去年的3月,在我从coursera刚学完一套python课程之后。(具体可见知乎用户:coursera上有哪些值得学习的Python,数据分析的课程?)在课程结束后,为了证明自己已经学会python,同时也惊讶于世间还有爬虫这种神奇的技能。我就从网上随便copy了份代码,爬虫届起手式:爬取豆瓣top250(那年头好像大家学爬虫的第一个网站都是豆瓣,类似于“hello world”一样?),结果python2的编码把我整的苦不堪言。好在遇见了我的计量老师,在他的帮助下,我总算是成功运行了人生的第一个爬虫脚本。并且还发了朋友圈,哈,装了逼,感觉自己距离成为python大神只差一步之遥了呢。后来,在向朋友圈的各位证明了自己“学会”python之后,我那一年也没有写过爬虫虽然主要的原因是我在准备考研。再次写爬虫,是考研结束后,因为毕业论文需要数据,于是在寒假的时候,又重新操起了python,东凑西凑了一周,把数据爬下了,不过当时我仍然不懂什么是HTTP请求,连BS也是用的稀里糊涂。等拿到数据之后,我又马上发了一条朋友圈,觉得自己虽然一年没写python没写爬虫,但是功底还是在的,再告知朋友圈的各位之后我就满心欢喜的去跑模型了。如果说第一次写爬虫,是在copy了代码,老师的帮助下完成的,那么第二次爬毕业论文数据应该才算是我能写爬虫的开始。不过,你可能会好奇,当时我那么菜,为什么没有想继续学习爬虫,真正搞懂爬虫的原理,或者跑去知乎上提问“python爬虫如何进阶”之类的问题。其实我还是一个挺好学的人,没有这样做的原因是:· 我要的数据已经拿到了· 我“觉得”自己已经学会python爬虫了· 我还有很多事要做,很多其他的东西要学更重要的是,我后来想明白了,对于爬虫这个东西,没有目的性的学习,单纯只是为了临时爬数据,又或为了发个朋友圈,是很难有热情支撑起对爬虫的深入学习和进阶的。就像是知乎上python爬虫入门的文章这么多,又有多少人在看完这些入门的文章后真正能坚持对爬虫,python的学习呢?还是像我之前一样,在第一个爬虫程序运行成功后,发个朋友圈,就觉得自己已经学会爬虫了。巧的是,好像是为了给我一个真正学习爬虫的机会,在刚入职后,由于要做产品的舆情分析,数据需要自己去爬,我又开始写爬虫了。不过这次就没那么水了,虽然当时我使用python主要是用来做数据分析(知乎用户:如何处理 Python 入门难以进步的现象?)。虽然我写了两次爬虫,但我知道我真的是爬虫小白= =。中间学习的过程就不在这里讲了,不是这个回答的重点。心路历程可以参考:杜洛瓦:Python 爬虫进阶?从爬百度贴吧开始,发了第一版舆情分析之后,老板表示满意,并鼓励我爬取的范围可以再广阔一点。于是我又转战论坛,新浪微博。速度太慢,上多线程;需要登录,用cookie;beautifulsoup太慢,用xpath;动态页面,抓包提交表单或者selenium2+phantomjs;需要存储,上pymysql.就像是一个升级打怪的过程,可以说在工作压力的push下,我越学习爬虫,越觉得爬虫涉及的知识面很广。其实这个回答主要是想总结一下自己在接触爬虫的这一年多时间里的诸多感触。如果说要讲干货的话,知乎上的优秀回答,大神也很多,我就不做重复无意义的事了。只是希望大家在最开始学习python爬虫的时候能问自己几个问题:· 我为什么要学习爬虫?· 我想要把爬虫学到什么程度?· 爬虫对我的学习,工作有什么帮助?最后,我们要明白爬虫只是一种获取数据的手段,分析好这些数据才能发挥爬虫真正的价值。完。编辑于 2017-09-0112添加评论分享收藏感谢收起Python Mingo马路牙子5 人赞同了该回答最开始时候,因为自己用ubuntu,想查单词上网页查找太费劲,就用python的urllib写了一个终端下查字典的脚本,非常方便,也非常开心之后,我在学校的bbs里写了一个自动正则过滤帖子并发贴的代码,用的python3的urllib模块,开始就是为了好玩现在更新了好几个版本,版里的盆友们玩的也非常开心哈哈主要就是兴趣,觉的好玩,那就搞起,不论神马方法,条条铁路通北京,必然能成发布于 2013-09-0354 条评论分享收藏感谢shadow程序猿61 人赞同了该回答刚开始只是简单的看了下 Python, 简单的写些小程序,小工具之类的,感受到了它的简洁与强大。突然就想写个爬虫试试,那就爬我最喜欢的音乐网站落网,爬了从第一期到到现在的所有音乐,包括每期的图片。还另外写了一个自动下载当前最新一期的所有歌曲的脚本。还试着用工具 PyInstaller 打包成了 exe,分享给了我几个同样喜欢落网的朋友。这是我爬的成果。关于如何学,我只是个新手,谈不上指导,就说说我自己怎么做的吧:1. 首先基本的 Python 语法你要了解吧,推荐一本书Python基础教程,很适合入门。2. 其次分析你的爬虫需求。程序具体流程是怎么样的?把程序的大致框架搭起来。另外可能还有哪些难点?3. 然后了解一下一般写爬虫需要用哪些库,这些库可以很好的帮助你解决很多问题。推荐强悍的 Requests: HTTP for Humans 另外还有其他一些库 如 urllib2 BeautifulSoup 都可以了解下。4. 动手开始写了,遇到问题 Google 即可,Google 不行就上知乎问,我遇到的一个问题就是知乎私信大牛解决的。在写的过程中还会学到很多相关的知识,比如说HTTP协议, 多线程 等等。或者你也可以直接用别人的框架,如其它人提到的 Scrapy,不用重复造轮子。编辑于 2014-05-066111 条评论分享收藏感谢收起罗成开心的学习53 人赞同了该回答一、前言你是不是在为想收集数据而不知道如何收集而着急?你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼?Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式,把每个部分都跟实际的例子结合起来帮助小伙伴儿们理解。最后再写几个实战的例子。我们使用Python来写爬虫,一方面因为Python是一个特别适合变成入门的语言,另一方面,Python也有很多爬虫相关的工具包,能够简单快速的开发出我们的小爬虫。本系列采用Python3.5版本,毕竟2.7会慢慢退出历史舞台那么,接下来,你得知道什么是爬虫、爬虫从哪里爬取数据的,以及,学习爬虫都要学习哪些东西。新建了一个python学习交流群,先是301在加上056还有051,在群里大家都是在相互交流分享,能够得到很多不同的东西二、什么是爬虫来看看百度百科是如何定义的网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。什么?没看懂?没关系,我来给你解释一下打开一个网页,里面有网页内容吧,想象一下,有个工具,可以把网页上的内容获取下来,存到你想要的地方,这个工具就是我们今天的主角:爬虫。这样是不是更清晰了呢?既然了解了爬虫是什么,那么爬虫是如何爬取数据的呢?三、爬虫是哪里爬取数据的打开浏览器(强烈建议谷歌浏览器),找到浏览器地址栏,然后在里敲,你会看到网页内容。欸,图片中间那俩人在干嘛?(单身狗请主动防御,这是误伤,这真的是误伤!)鼠标在页面上点击右键,然后点击view page source。看到这些文字了吗?这才是网页最赤果果的样子。其实所有的网页都是HTML代码,只不过浏览器将这些代码解析成了上面的网页,我们的小爬虫抓取的其实就是HTML代码中的文本啦。这不合理啊,难不成那些图片也是文本?恭喜你,答对了。回到浏览器中有图的哪个tab页,鼠标右键,点击Inspect。会弹出一个面板,点击板左上角的箭头,点击虐狗图片,你会看到下面有红圈圈的地方,是图片的网络地址。图片可以通过该地址保存到本地哦。你猜的没错,我们的小爬虫抓取的正是网页中的数据,你要知道你想要抓取什么数据,你的目标网站是什么,才可以把想法变成现实的哦。你不能说,我想要这个这个,还有这个,然后数据就自动来了。(是不是让你想起了你的导师或老板?)四、学习爬虫的必备知识大家要先对以下内容有一定的了解再来学习爬虫哦,磨刀不误砍柴工HTML这个能够帮助你了解网页的结构,内容等。可以参考W3School的教程。Python如果有编程基础的小伙伴儿,推荐看一个廖雪峰的Python教程就够了没有编程基础的小伙伴,推荐看看视频教程(网易云课堂搜Python),然后再结合廖雪峰的教程,双管齐下。其实知乎上总结的已经非常好了,我就不多唠叨了。知乎-如何系统的自学PythonTCP/IP协议,HTTP协议这些知识能够让你了解在网络请求和网络传输上的基本原理,了解就行,能够帮助今后写爬虫的时候理解爬虫的逻辑。廖雪峰Python教程里也有简单介绍,可以参考:TCP/IP简介,HTTP协议想更深入学习的小伙伴儿可以去网上多搜搜相关的书籍哦一、前言为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据。网络上的模块、库、包指的都是同一种东西,所以后文中可能会在不同地方使用不同称谓,不要迷惑哦。结合一个实例来讲解吧。我的一个设计师小伙伴常去一些设计类网站收集素材,其中有个网站Unsplash里面美图特别多,所以想要把里面的图片都保存下来,这样咱们的小爬虫就登场了。说干就干,赶紧开始吧。先来准备环境二、运行环境系统版本我使用的是Windows10。好多小伙伴使用的是Mac,配置上基本相同。由于我多年混迹于微软的开发平台,经常使用Visual Studio、SQL Server啥的,用Windows用习惯了(其实主要是因为Qiong穷!)。所以这个教程我就以Windows系统为例了。Python版本我电脑装了好多个Python版本(学一个装一个。),不过推荐使用Anaconda这个科学计算版本,主要是因为它自带一个包管理工具,可以解决有些包安装错误的问题。去Anaconda官网,选择Python3.5版本,然后下载安装。IDE我使用的是PyCharm,是专门为Python开发的IDE。这是JetBrians的产品,点我下载。三、requests 库的安装使用Anaconda 版

    注意事项

    本文(你是如何开始能写python爬虫.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开