Python爬虫小白入门(一)

开篇语

本篇文章适用人群 >有一点点语法基础,至少知道Python这个东西,如果有其他方面语言的基础那也凑合 >会一点点Linux系统的操作,最好是ubuntu >有爬虫兴趣的啊,这可是好东西啊!!

温馨提示:非此道用户,食用起来可能会有点不适,请谅解

正文

Python爬虫简介(来源于维基百科):

网络爬虫始于一张被称作种子的统一资源地址(URLs)列表。当网络爬虫访问这些统一资源定位器时,它们会甄别出页面上所有的超链接,并将它们写入一张"待访列表",即所谓"爬行疆域"(crawl frontier)。此疆域上的统一资源地址将被按照一套策略循环访问。如果爬虫在他执行的过程中复制归档和保存网站上的信息,这些档案通常储存,使他们可以被查看。阅读和浏览他们的网站上实时更新的信息,并保存为网站的“快照”。大容量的体积意味着网络爬虫只能在给定时间内下载有限数量的网页,所以要优先考虑其下载。高变化率意味着网页可能已经被更新或者删除。一些被服务器端软件生成的URLs(统一资源定位符)也使得网络爬虫很难避免检索到重复内容。

简单点书,python爬虫就是一个机械化的为你查询网页内容,并且根据你制定的规则返回你需要的资源的一类程序,也是目前大数据常用的一种方式,所以今天来进行爬虫扫盲,高端用户请回避,或者可以私戳,容我来膜拜下。

我的学习动机

最近对简书中毒很深,所以想要写一个爬虫,放到服务器上,自己帮我随时查看简书的主页的更新状况,计划中是这样的: 这个爬虫,身兼数职: 1. 首先,每一个小时自动查询简书的主页的文章; 2. 然后,比对名字相同的文章在一个小时内的阅读量,喜欢,评论,打赏数目,全部存储进入数据库,然后进行处理,比对,分析出每一篇文章不同时间的增长幅度以及系数还有对他们的位置进行排序; 3. 最后,还要写一个六小时自动执行的数据汇总邮件发给我的脚本。

差不多做到这些,这个爬虫就算是很成功了,然后我就把握住了简书的首页动向,可以把我自己的稿子存起来,在不同的时间发表不同的文章,把握读者的集群时间,争取阅读量最大化~~这才是一个工科男生学编程的时候,接触简书一周后该干的事情~~OK 不多说了。进入正题

计划进行第一日

我后天要考试啊,明天要交单片机实验报告,还有十来个汇编程序没写, 所以只能先做个最简单粗暴的示例了:

代码如下:(和图片有点出入,不过后面会解释,先看下面的)

from urllib.request import urlopen
from bs4 import BeautifulSouphtml = urlopen("http://www.jianshu.com")
bsObj = BeautifulSoup(html)print(bsObj.h1)nameList=bsObj.findAll("h4",{"class":"title"})for name in nameList:
        print(name.get_text())

当然,在此之前,你需要在linux上安装了python3 ,最好是3.5 这样才能保证不出错误,然后我假设是一个安装了ubuntu 16.04 的用户,你现在只需要按照下面的输入代码,就差不多了:

sudo apt-get update

更新你的软件源

sudo apt-get install python3-pip

下载python库,包文件安装工具

pip3 install bs4

下载目前最流行的HTML解析工具之一的BeautifulSoup ,来!干了爬虫这一杯毒汤

然后,新建一个.py后缀的新文件,写入上述的代码,然后执行,我这里是用的bs2 .py作为文件名,所以执行下述命令,看看会发生啥~~!!

python3 bs2.py >bs.txt

OK,现在可以查看结果了 cat bs.txt 对了,上面那个>的意思是把结果写进后面的文件(别在意那些警告,我后面会解释的)

所有文章的名字都在这儿了,是不是很神奇?待会还有更神奇的 我再多些几个字母,就完全不一样了(其实就是更改查找规则):

from urllib.request import urlopen
from bs4 import BeautifulSouphtml = urlopen("http://www.jianshu.com")
bsObj = BeautifulSoup(html)print(bsObj.h1)nameList=bsObj.findAll("li",{"class":"have-img"})for name in nameList:
        print(name.get_text())

这就是对应本文第一章代码图的那些代码,来来来,跑一跑试试哈~~

OK,爬虫扫盲今天到此为止,由于这样会对简书服务器造成负载,所以希望大家克制一下,不要过多的爬呀爬啊。温柔以待简书,她会用阅读量回报我的,对吧~~

结束语

哈哈,很开心可以跟大家分享这一门技术。不过这都是真的最最基础的东西,要是想学的话,简书比我高深的一大堆,要是想要循序渐进的学习的,可以关注我啊,我后面会花时间继续写学习笔记做总结的哦~~~

原文发布于微信公众号 - 工科狗和生物喵(gh_3507b116a1f8)

原文发表时间:2017-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hotqin888的专栏

电子规范管理系统(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

1651
来自专栏蓝天

Linux下可以替换运行中的程序么?

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结...

1822
来自专栏北京马哥教育

Linux 新手必会的21条命令合集

2027
来自专栏FreeBuf

走近科学 | ”种子“的前世今生

*本文原创作者:追影人 0x00 前言 “种子”是生命的起点,是未来的希望,同时也解决了无数宅男腐女的寂寞时光。本文将带领各位童鞋了解BT种子(torrent)...

27710
来自专栏嵌入式程序猿

FreeMaster和你有个约会

FreeMaster 其实这工具好多年了,只是最近有了更新,在加上最近在调试BLDC电机,用这个工具挺好,FreeMASTER是一个用户友好型实时调试监测器和数...

3078
来自专栏iKcamp

iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影。 前面的文章中,...

4089
来自专栏编程札记

Goroutine并发调度模型深入之实现一个协程池

9425
来自专栏京东技术

多级缓存设计详解 | 给数据库减负,刻不容缓!

物流研发部架构师,GIS技术部负责人,2012年加入京东,多年一线团队大促备战经验,负责物流研发一些部门的架构工作,专注于低延迟系统设计与海量数据处理。曾负责青...

3655
来自专栏烂笔头

Django 1.10中文文档-第一个应用Part5-测试

目录[-] 本教程上接教程Part4。 前面已经建立一个网页投票应用,现在将为它创建一些自动化测试。 自动化测试简介 什么是自动化测试 测试是检查你的代码是...

3766
来自专栏HaHack

comment.js:一个纯JS实现的静态站点评论系统

2414

扫码关注云+社区

领取腾讯云代金券