爬虫,是我学习的比较多的,也是比较了解的。打算写一个系列教程,网上搜罗一下,感觉别人写的已经很好了,我没必要重复造轮子了。

爬虫不过就是访问一个页面然后用一些匹配方式把自己需要的东西摘出来。

而访问页面经常用到的几个库,一是urllib和urllib2结合使用,二是requests的使用。第一种方法可以让你了解http协议的一些原理,对于初学者应该从这个入手,但是所谓显得麻烦,第二种requests比较方便,但是由于它是对其他库(httplib等)的高级封装,所以灵活性会差点,功能稍微差点,但一般的效果几乎都可以达到。

访问页面会得到页面的源码,我们的爬虫最大的挑战是从源码里找到我们需要的东西。这个过程也是有几种方法的,但是基本原则就是先抓大再抓小。简单介绍几种匹配方法,第一就是正则表达式了,这个方法有什么好处呢,我能想到的只有一个好处,就是可以提高我们正则匹配能力,因为正则表达式用途很广,而下面说的两种方法用途就只是做爬虫才会用到,所以还是那句话,对于初学者,先从做个方法着手,等自己对正则表达式理解的很好了,再去使用下面两种方法。第二种方法是提取html/xml等的第三方库,beautifualsoup,有中文官方文档,很详细,可以去参考,很多人推荐这种方法。第三种方法就是用xpath,这个据说是对于不标准的html会出错,但对于我们这样不是做搜索引擎,只是小打小闹的,一般不会有问题,而且我觉得这个方法真的是太简单而且太容易理解了。

当然,这个是自己制作,还有比较高级的scrapy框架,这个就更方便了,也有中文官方文档。网上也有很多现成的例子,也可以去github去搜索scrapy,会得到很多别人写好的项目,读一下别人的代码,会有一些知识的拓展。。

本来也想详细写一个系列教程,下面这个链接里的哥们写的已经很详细了,可以参考。

http://cuiqingcai.com/1052.html    爬虫系列教程

另外,可以推荐大家一个网站,极客学院,讲的很不错,很实用

http://www.jikexueyuan.com/  极客学院

python 爬虫系列教程方法总结及推荐的更多相关文章

  1. python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda

    ---恢复内容开始--- python基础系列教程——Python的安装与测试:python的IDE工具PyDev和pycharm,anaconda 从头开启python的开发环境搭建.安装比较简单, ...

  2. Python爬虫入门教程 48-100 使用mitmdump抓取手机惠农APP-手机APP爬虫部分

    1. 爬取前的分析 mitmdump是mitmproxy的命令行接口,比Fiddler.Charles等工具方便的地方是它可以对接Python脚本. 有了它我们可以不用手动截获和分析HTTP请求和响应 ...

  3. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  4. Python爬虫入门教程 43-100 百思不得姐APP数据-手机APP爬虫部分

    1. Python爬虫入门教程 爬取背景 2019年1月10日深夜,打开了百思不得姐APP,想了一下是否可以爬呢?不自觉的安装到了夜神模拟器里面.这个APP还是比较有名和有意思的. 下面是百思不得姐的 ...

  5. Python爬虫防封杀方法集合

      Python爬虫防封杀方法集合     mrlevo520 2016.09.01 14:20* 阅读 2263喜欢 38       Python 2.7 IDE Pycharm 5.0.3 前言 ...

  6. python基础系列教程——Python中的编码问题,中文乱码问题

    python基础系列教程——Python中的编码问题,中文乱码问题 如果不声明编码,则中文会报错,即使是注释也会报错. # -*- coding: UTF-8 -*- 或者 #coding=utf-8 ...

  7. python基础系列教程——Python3.x标准模块库目录

    python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata ...

  8. Python实战:Python爬虫学习教程,获取电影排行榜

    Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

  9. Python爬虫入门教程 2-100 妹子图网站爬取

    妹子图网站爬取---前言 从今天开始就要撸起袖子,直接写Python爬虫了,学习语言最好的办法就是有目的的进行,所以,接下来我将用10+篇的博客,写爬图片这一件事情.希望可以做好. 为了写好爬虫,我们 ...

随机推荐

  1. Java 创建多线程的三种方法

    1. 继承Thread类2. 实现Runnable接口3. 匿名类的方式 注: 启动线程是start()方法,run()并不能启动一个新的线程

  2. Unity3D学习笔记(二十二):ScrollView和事件接口

    昨天问题 InputField光标被遮挡问题:背景图片输入层级高于光标的层级,把光标弄成子物体,子物体层级高 自制的滑动框,选项怎么对齐,把Template的Pivot.y改为1 分辨率的区别:16: ...

  3. echart折线图,柱状图,饼图设置颜色

    转载: 之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category ...

  4. 获取String类型汉字乱码,如何进行编码

    本文为博主原创,未经允许不得转载: 在解析properties文件中的汉字时,在java代码中解析得到的是一个乱码字符,形如图下: 导致乱码原因:由于在jdk中,默认为gbk编码方式进行编码盒接收的, ...

  5. clipboard异步复制文本(动态获取文本)

    1.需求描述: 点击“分享”按钮的时候,发送 ajax 请求获得动态邀请连接,成功取得数据后复制到剪贴板 2.解决重点: > Clipboard 动态设置文本的使用 > Ajax请求设置为 ...

  6. shell 函数调用

    例一 #!/bin/bash create_link() { filelist=`ls $` for file in $filelist do echo $/$file done } create_l ...

  7. Spring/Spring MVC/Spring Boot的区别

    1.spring boot更简单,容易上手: 2.spring boot对第三方技术进行了很好的封装,提供了大量的第三方接口: 3.通过依赖配置,不需要XML等配置文件: 4.提供了安全性等特性. S ...

  8. Java 面向对象之static,final,匿名对象,内部类,包,修饰符

    01final关键字概念 A: 概述 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承, 或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这 ...

  9. jquery作业 教授答案

    http://www.cnblogs.com/qianjinyan/p/8961086.html 题目要求: 1. 通过jquery动态的创建一个表格,随机生成(id自增,name随机2-3个中文汉字 ...

  10. Observable类API

    包java.util 类 Observable public class Observable extends Object 此类表示模型视图范例中的 observable 对象,或者说“数据”.可将 ...