最后
🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
接着,你需要一些高效的工具来辅助
(同样,这里先了解,到具体的项目的时候,再熟悉运用)
NO.1 F12 开发者工具:
- 看源代码:快速定位元素
- 分析xpath:1、此处建议谷歌系浏览器,可以在源码界面直接右键看
NO.2 抓包工具:
- 推荐httpfox,火狐浏览器下的插件,比谷歌火狐系自带的F12工具都要好,可以方便查看网站收包发包的信息
NO.3 XPATH CHECKER (火狐插件):
非常不错的xpath测试工具,但是有几个坑,都是个人踩过的,,在此告诫大家:
1、xpath checker生成的是绝对路径,遇到一些动态生成的图标(常见的有列表翻页按钮等),飘忽不定的绝对路径很有可能造成错误,所以这里建议在真正分析的时候,只是作为参考
2、记得把如下图xpath框里的“x:”去掉,貌似这个是早期版本xpath的语法,目前已经和一些模块不兼容(比如scrapy),还是删去避免报错
NO.4 正则表达测试工具: 在线正则表达式测试 ,拿来多练练手,也辅助分析!里面有很多现成的正则表达式可以用,也可以进行参考!
||
||
V
ok!这些你都基本有一些了解了,现在开始进入抓取时间,上各种模块吧!python的火,很大原因就是各种好用的模块,这些模块是居家旅行爬网站常备的——
urllib
urllib2
requests
||
||
V
不想重复造轮子,有没有现成的框架?
华丽丽的scrapy(这块我会重点讲,我的最爱)
||
||
V
遇到动态页面怎么办?
selenium(会了这个配合scrapy无往不利,是居家旅行爬网站又一神器,下一版更新的时候会着重安利,因为这块貌似目前网上的教程还很少)
phantomJS(不显示网页的selenium)
||
||
V
遇到反爬虫策略验证码之类咋整?(不想折腾的直接第四个)
PIL
opencv
pybrain
打码平台
||
||
V
然后是数据库,这里我认为开始并不需要非常深入,在需要的时候再学习即可
mysql
mongodb
sqllite
||
||
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)
cookie[key] = value #一些格式化操作,用来装载cookies
#重点来了!用requests,装载cookies,请求网站
page = requests.get('#妹纸的豆瓣主页#',cookies=cookie)
#对获取到的page格式化操作,方便后面用XPath来解析
tree = html.fromstring(page.text)
#XPath解析,获得你要的文字段落!
intro_raw = tree.xpath('//span[@id="intro_display"]/text()')
#简单的转码工作,这步根据需要可以省略
for i in intro_raw:
intro = i.encode('utf-8')
print intro #妹子的签名就显示在屏幕上啦
#接下来就是装载邮件模块,因为与本问题关联不大就不赘述啦~
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!