前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫小白入门(一)

Python爬虫小白入门(一)

作者头像
用户1687088
发布2018-05-07 16:38:24
9090
发布2018-05-07 16:38:24
举报

开篇语

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

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

正文

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

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

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

我的学习动机

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

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

计划进行第一日

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

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

代码语言:javascript
复制
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 的用户,你现在只需要按照下面的输入代码,就差不多了:

代码语言:javascript
复制
sudo apt-get update

更新你的软件源

代码语言:javascript
复制
sudo apt-get install python3-pip

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

代码语言:javascript
复制
pip3 install bs4

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

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

代码语言:javascript
复制
python3 bs2.py >bs.txt

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

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

代码语言:javascript
复制
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,爬虫扫盲今天到此为止,由于这样会对简书服务器造成负载,所以希望大家克制一下,不要过多的爬呀爬啊。温柔以待简书,她会用阅读量回报我的,对吧~~

结束语

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工科狗和生物喵 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开篇语
  • 正文
  • 结束语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档