零基础入门python爬虫(一)

?写在前面

欢迎加入纯干货技术交流群Disaster Army:317784952

接到5月25日之前要交稿的任务我就一门心思想写一篇爬虫入门的文章,可是我并不会。还好有将近一个月的时间去学习,于是我每天钻在书和视频教程里。其实并不难的,我只是想做到能够很好的理解它并用自己的语言较好的表达出来,也许你将看到的是史上最不专业的技术交流文章,没错这就是我想要的。我力求能让没有编程基础同我一样爱黑客技术却苦于看不到出路的同学们在24小时之内明白爬虫是怎么一回事。我想这才是我加入中国红客联盟太极实验室在红客精神的号召下做的有意义的事。学习技术一定要学会付出、开源、共享、互助,很多大牛似乎不愿意这么做了,我们入门小菜鸟只要够团结,乐于奉献就一定可以达到1+1>2的双赢效果。总之共同努力吧!

?第一章

0x00 python的认识、安装

官面上的话自行去百度,这里我只介绍我所掌握到的、最重要的信息。

特点:

(1)跨平台开发

(2)以语法简洁清晰著称

(3)缩进控制严格

至于说爬虫需不需要编程基础,不用多说,君不见本屌在这个月之前的n多个月里是多么苦苦的啃教程,对么下三赖的求指点。其实自学的进步速度太慢了,此文也希望看到的码阔多多提点!

更多信息:

python百度百科

安装也是极易的,只是有python2.7和python3需要纠结选一下。菜菜也不多做建议了,各有所长,python是任性的,不顾及老用户感受强行不兼容更代,足以见得其魄力和自信。2.7的用户较多一点,初学者想用大神的exp不得已会选择它,3的用户逐日增加,人家既然更代自然有好的原因。不必担心,到最后基本上差异在哪里都会知道的。

Python官网

还是那句话,官面上可以查到的就不多聊,交流文章多写作者的看法,意见不统一的喷过来就是。很多教程会建议一开始的时候用python自带的IDLE写代码,简洁没有代码补全提示,适合初学者!我差点就信了!你会觉得怎么打都有一种好TM业余的感觉有没有?我的观点是:不是武功练到什么程度用什么剑,而是有适合自己的绝世好剑就绝对不用绝世第二剑。所以用了一段时间的IDLE我就决定换一款炫酷的编译器,于是我选择了Atom(这个时候有一个认识上的错误。)然后一个字都没写就安装activate-power-mode插件,开始震屏,冒泡,好不炫酷。

?

安装好了python,有了编译器,我们开始编程了,打开编译器输入

print (“Hello Word”),保存文件名为1.py,就把它保存在桌面上。然后cmd

cd /d C:\\Users\Administrator\Desktop

python 1.py

如果打印:Hello word,那么恭喜你,你学会编程了!(我的天!)如果打印失败,那么你和兄弟我起初时犯了一样的错误:没有设置环境变量。

这张图应该可以说明问题了,我的电脑>属性>高级系统设置>环境变量>pach>最后面加;G:\python27(根据自己安装路径来改)。

这回就可以打印了,好吧你也学会编程了!(我天哪!)

?

0x001 将网页下载到本地

我们要用到python的标准模块urllib,具体下面的多种方法可以dir打开查看的,代码如下,供您消遣。大多数同学都会觉得太小儿科的,不太懂得不必细究,只需知道用这么个模块,这么个方法可以干这么个事情!

# -*-coding:utf-8 -*-

# 首先进行编码申明

import urllib

# 导入urllib模块

url = "http://www.xxoo.com/"

# 变量赋值

urllib.urlretrieve(url, "C:\\Users\\用户名\\Desktop\\g00gle.txt")

# urlretrieve方法下载到本地

这样就将网页下载到本地了

0x002 判断网页是否可以抓取以及抓取进度

思路是这样的:我们针对一个网页首先要看它是否可以爬取,如果可以我们抓取他的什么?抓取它的内容、头部信息、状态码、传入网址等,代码如下:

# -*-coding:utf-8 -*-
import urllib
url = "http://www.163.com/"
html = urllib.urlopen(url)
# content = html.read().decode('gbk','ignore').encode(''utf-8)
# print(content)
code = html.getcode()
# 网页状态码,变量code是一个整形

if code == 200:
  print html.read()
  print html.info()

else:
  print "不明飞行物."
# if判断语句判断网页返回是否正常,如果正常返回他的内容、头部信息、状态码、传入网址等

这里,urllib中用的的方法:

# urlopen()
#获取类文件对象
# read()
#读取文件内容
# infor
# 获取头部信息Header
#Getcode
#获取网页状态码
#geturl
#传入网址

举一个例子:

这是某站的Header、Sever、Content-Type、Last-Modified

用上面代码抓取打印的结果:

然后我们用回调函数的方法写一段有读取进度的抓取网页的代码。

# -*-coding:utf-8 -*-

import urllib

def callback(a,b,c):

    # 回调函数
    # @a:xxx
    # @b:xxx
    # @c:xxx

    down_program = 100.0 * a * b / c

    if down_program >100:
        down_program =100

    print "%.1f%%"% down_program
    # 字符串拼接%.4f让输出小数点后1位
    print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100%"

url = "http://tieba.baidu.com/"
local = "C:\\Users\\Joe\\Desktop\\papa2.html"

urllib.urlretrieve(url,local,callback)
# 调用了上面封装的callback函数

技术有限,本来想让它

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100%这样读取的,懒得弄了,没再深究。

?

0x003 你发现换了编译器

对的,至于是为什么呢?因为到后来我才明白编译器、文本编译器、IDE之间的区别,真是愚笨!我是这样理解的,就像大保健一样,IDE小姐可以提供陪吃、推拿、跳舞、刮痧、n推背等服务,编译器呢晚上进屋白天走人,文本编译器……类似于什么呢?充气娃娃?它们不能对比各有所长。Atom严格上来说属于文本编译器,本身不能断点测试,但加载插件后可以。还有,Atom想Chrorme一样任性,自动强制装在系统盘,其实之前忍了它……现在找到我的绝世好剑了,不能忍,Pycharm取而代之。Sublimetext,人气之高,自然也不错。

?

0x004 本章小结

本章我们安装了Python环境,配置了环境变量,浅尝了编程,抓取了网页内容,并有进度条的下载到了本地。其实都是一些简单的事情。简单区分了一下编译器、文本编译器、IDE之间的区别。这个过程中我肯定有认识上和方法上不当的地方,欢迎大家批过来!预知后事如何,咱们下回分解!

?

——————

未经沟通转载,将追究法律责任,请尊重原创劳动成果!

原文地址:https://www.cnblogs.com/g00gle/p/12297292.html

时间: 2024-11-05 15:47:31

零基础入门python爬虫(一)的相关文章

零基础写python爬虫之urllib2使用指南

零基础写python爬虫之urllib2使用指南 前面说到了urllib2的简单入门,下面整理了一部分urllib2的使用细节. 1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy 而不受环境变量的影响,可以使用代理. 新建test14来实现一个简单的代理Demo: import urllib2   enable_proxy = True   proxy_handler = urllib2.Prox

零基础写python爬虫之使用Scrapy框架编写爬虫

网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item

小甲鱼零基础入门PYTHON

 000.愉快的开始 00:17:37 ☆  001.我和Python的第一次亲密接触 00:13:26 ★  002.用Python设计第一个游戏 00:24:00 ★  003.小插曲之变量和字符串 00:19:04 ★  004.改进我们的小游戏 00:26:31 ★  005.闲聊之Python的数据类型 00:18:41 ★  006.Pyhon之常用操作符 00:16:31    007.了不起的分支和循环 00:16:30    008.了不起的分支和循环2 00:12:09  

从零起步 系统入门Python爬虫工程师

课程目录及大纲: 第1章 从零开始 系统入门python爬虫工程师-课程导学 获取课程资料链接:点击这里获取 这是一门专门为爬虫初学者打造的教程,从零起步的系统化教程,课程内容从理论到实践,一层一层深入讲解,尤其是课程实战环节:一步一步带你进行多场景项目实践 ,让你能够举一反三从容面对以后的数据抓取问题,最后关于就业部分,重点,难点,针对性讲解,轻松应对面试,最终达到就业水准.... 1-1 从零开始 系统入门python爬虫工程师-课程导学 试看第2章 彻底解决让人头疼的环境搭建问题 视频教程

从零起步 系统入门Python爬虫工程师完整教程

1 var link="www.marenzy.top"//完整视频资源获取地址,复制链接在浏览器打开 2 var vx="aishangit666"//如链接失效可添加微信 从零起步 系统入门Python爬虫工程师 大数据时代,python爬虫工程师人才猛增,本课程专为爬虫工程师打造,课程有四个阶段,爬虫0基础入门->项目实战->爬虫难点突破->scrapy框架快速抓取,带你系统学习.课程精选多个实战项目,从易到难,层层深入.不同项目解决不同的抓

鱼C《零基础入门学习Python》10-17节课时知识点总结

第10讲:列表:一个打了激素的数组 1. 列表都可以存放一些什么东西?  我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型. 2. 向列表增加元素有哪些方法?  三种方法想列表增加元素,分别是:append().extend() 和 insert().    3. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?  append() 方法是将

鱼C《零基础入门学习Python》1—9节课时知识点总结

第一节:我和python的第一次亲密接触 0. Python 是什么类型的语言? 答:脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则,基于这项原则,使得脚本语言通常比 C语言.C++语言 或 Java 之类的系统编程语言要简单容易.也让脚本语言另有一些属于脚本语言的特性: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的“解释”作为运行方式,而不需要

大牛整理最全Python零基础入门学习资料

大牛整理最全Python零基础入门学习资料 0 发布时间:『 2017-11-12 11:56 』     帖子类别:『人工智能』  阅读次数:3504 (本文『大牛整理最全Python零基础入门学习资料』的责任编辑:老王) 摘要:大牛整理最全Python零基础入门学习资料 Python数据类型--数字 Python Number 数据类型用于存储数值. 数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间. var1 = 1 var2 = 10 您也可以使

零基础学Python应该学习哪些入门知识及学习步骤安排

众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位,薪资待遇呈上涨趋势.很多人都想学习Python,那么零基础学Python应该学习哪些入门知识呢? Python入门知识一:解释器. Python是一种面向对象的解释型计算机程序设计语言,因此想要学好Python你必须要了解解释器.由于Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行