爬虫获取不到网页完整源码_你的第一只网络爬虫

 我相信有相当大部分人,学习python最初动机,就是做一个网络爬虫,虽然python的主要强项是数据分析方面(至少我是这样认为的),但这并不妨碍它成为目前最主流的网络爬虫编写语言。

网络爬虫是什么?

——网络上一切看得见的,或看不见的数据,无论是用浏览器还是App或是其他工具打开的,只要是数据,理论上都是通过“数据包”的形式在网络上传播的,爬虫就是用一堆代码,去获取那些数据包,然后把它们解析成我们能看得懂的样子。

好像比较拗口……,再用大白话说一次:爬虫,就是数据获取工具。而且,出于各种原因,大家最好在正式场合不要说“爬虫技术”,而要说“数据获取技术”。

正式开始,先介绍一下python在数据获取方面,我常用的包有哪些:

  • requests  用于获取页面的原始代码

  • lxml(etree)  用于对网页标签进行定位,可以解析出需要的数据

  • bs4(BeautifulSoup)  同上,最早的爬虫包,现在用的少了,但在某些场景还是有它的用处

  • selenium(webdriver)  模拟浏览器,应付比较多渲染效果、有用户登录或验证码的场景

在掌握了常用的包之后,数据获取的大致流程如下(以获取网站数据举例):

  • 首先了解自己需要的数据是哪些,百度一下这些数据大概都在哪些网站上有,迅速人工浏览一下这些目标网站的首页和内页情况,观察一下页面的复杂程度、是否有大量渲染效果、是否有用户登录、是否需要验证码……等等,然后确定一个最终的目标网站,要求是在拥有我们需要的数据的前提下,数据获取难度相对较小。

  • 用requests(或webdriver)把页面获取下来(如果有渲染、用户登录或验证码,就需要使用相应工具处理后才能获取到),对目标网站的网页代码进行分析,定位出我们需要的数据,并把这些数据用dict类型或list类型组织起来,形成对我们有用的数据包。

  • 把组织好的数据,存到mongoDB或excle、txt文件里面去,方便我们使用。

做完这些,爬虫基本上就做完了。通常一个爬虫代码,只能用于一个网站,我们通常称负责页面解析的代码为“爬虫模板”。网站页面的代码如果发生更新,会导致爬虫模板不能获取到正确的数据,甚至直接报错,需要对爬虫模板进行相应的更新。对于需要持续获取数据的爬虫,这个“博弈”过程会反复出现。

循例,我们还是上一个例子,来简单介绍一下上面的流程:

第一步  确定需求、确定目标网站:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值