什么是爬虫
简单来说,写一个从 web 上获取需要数据的程序。如果你有需要的话可以按照规则去把数据保存下来。数据可以有字符串,也可以是图片,也可以是文件。主要看你爬的是什么。
爬虫理论上步骤很简单,第一步获取 html 源码,第二步分析 html 并拿到数据。但实际操作,老麻烦了
用 Python 写 “爬虫” 有哪些方便的库:
常用网络请求库:
requests
urllib
urllib2
urllib 和 urllib2 是 Python 自带模块,requests 是第三方库
常用解析库和爬虫框架:
BeautifulSoup,
lxml,
HTMLParser,
selenium,
Scrapy,
HTMLParser 是 Python 自带模块;
BeautifulSoup 可以将 html 解析成 Python 语法对象,直接操作对象会非常方便;
lxml 可以解析 xml 和 html 标签语言,优点是速度快;
selenium 调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码;
Scrapy 很强大且有名的爬虫框架,可以轻松满足简单网站的爬取
爬虫需要掌握哪些知识
学会看html代码,知道哪个数据对应哪一个页面。
学会浏览器调试功能,学爬虫需要学会抓包,看看别人的协议到底是怎么传输的。
进阶爬虫
熟练了基本爬虫之后,你会想着获取更多的数据,抓取更难的网站,然后你就会发现获取数据并不简单,而且现在反爬机制也非常的多。
有的需要登录并将下次的请求时将 sessions 带上,有的需要代理ip,有的加密功能在里面,各种加密可能每个网站不一样,有的返回 js 代码然后用浏览器执行。这些不是一两句话可以说清楚的。
不过我们也不用太灰心,只能说碰到问题之后再去单独攻克,因为问题并不是统一概括,解决的方法也不一样。想要变得更厉害只能做针对性的练习,多写代码了。
对爬虫有感兴趣的同学,也可以关注公众号:诗一样的代码,找我一起学。