初学者的爬虫日志

author author     2022-10-04     656

关键词:

  博主本人在以前就挺好奇知乎那群答主的答案数据从哪里的, 别人说是从网上爬的(搞安全的同学例外)。由于本人最近比较闲的,所以就起了学习写网络爬虫的心思(所以兴趣很重要!)。打开浏览器,百度了下网络爬虫,什么用python写网络爬虫的的比较多,所以就用它了(好随便的赶脚). 然后我开始搜索有关用python写的网络爬虫的网络博客(主要是入门的教程指导类 ),看了下博客,怎么说呢,网上各博客主个个实力都不错,知识结构都非常的清晰,讲解的都非常细致,非常浅显易懂,但总感觉少了点什么,仔细想了下应该是大部分博客都注重知识本身,而轻视获取知识的过程(我觉得这个最有意思),没啥成就感,自我感觉挺无聊(总感觉有天朝教育的影子,我写你抄)。所以准备换个角度,从学习者角度写一些自认为有意思的东西。

  言归正传,在接触网络爬虫这个名词,我的第一反应是它是啥东东,它能干啥,该怎么做(。。。怎么感觉像在读书时在写论文。。。)。当然你可以百度,想了下还是不要贴百度的定义(不要打我),先说下自己对这个专业术语的理解吧,由于博主也才学几天理解非常浅薄,希望各位读者理解,我个人认为:网络爬虫就是个定制化的互联网信息采集程序(当然,以后可能有不同的理解,认知总不断变化地。)。它能够针对性对各网站的信息进行提取和分类(比如我要想知道淘宝有多少家店铺,各店主都是些谁怎么办,你就运用爬虫技术爬取整个淘宝网)。说了这么多废话,主要是希望大家对新事物有自己的见解,也希望读者老爷们多点耐心(这个话痨。。。。)

  这次是真的“言归正传”,作为一个目标驱动型的学习者,我十分喜欢在学习一个新东西前制定“作战计划”,在做的过程中去学习,而不是学完后在做。比如我想去爬取糗事百科所有用户的用户名,我该怎么做呢?有人说,先把python语法会用后,在学urllib或 requests之类的库学会http请求的啥,然后去学正则表达或 Beautiful Soup,lxml 之类的库去解析啥,可能你还有去学一些前端的一些东西,比如html css,xml 之类的东东,接着还要去学一些mysqloracle,sqlite ,sqlserver之类数据库操作一些东东,我的天啊 ,我只是想知道知道怎么爬糗事百科网的用户名,怎么还要学这么多,许多人看着这长长的学习路线傻眼了,然后就gg了。所以,让我们回到最初的起点,从实际问题出发。首先,不去管用啥语言,会啥语法,不要去学啥urllib, lxml,xml ,mysql 之类的东东,先仔细分析下如何去爬取糗事百科所有用户的用户名这个实际问题。

  先想一下你是如何知道糗事百科网的别人的用户名,有人说,那还不简单,百度搜下糗事百科,打开糗事百科官网  https://www.qiushibaike.com/ ,不就看到了吗。对!就是这样简单,所有爬虫程序所干的事情都是这样的,它也是打开一个网站,然后根据所设规则提取出我们所需要的信息,然后保存下来 ,只不过一个是通过人眼看到,一个是爬虫程序自动提取信息,一个是记在脑子里(可能过下就忘了),一个是保存在磁盘中(你只要不删除,估计大概可能能保持20,30年)。虽然方式有所不同,但是他们的思想是共通的。简单来讲,就三步,打开网页-提取信息-保存信息

  那么,如何让程序能打开我们想要的网站呢?你可以试着通过百度搜下,比如什么“如何用python打开网站之类的”,"python 打开网站的几种方式“ 之类的关键字,当然,你也可以去论坛csdn,知乎等论坛提问。我当时试着搜索下,搜到了这个网站 http://blog.csdn.net/Winterto1990/article/details/47660543 。这个网站介绍了四种方法,这里就第一种为例子 ,代码如下:

import urllib
url="http://www.baidu.com" #这里是需要获取的网页
content=urllib.open(url).read() #使用urllib模块获取网页内容
print content #输出网页的内容 功能相当于查看网页源代码

  在运行之前 ,先简单说下,我的python版本是2.7.12,所用的ide(集成开发环境)是pycharm,至于如何下载这两软件可以参考下面两个网站:一个是python的官网: https://www.python.org/downloads/ ;一个是pycharm的官网: https://www.jetbrains.com/pycharm/ ,下载教程链接:http://blog.csdn.net/qq_29883591/article/details/52664478

  好了。运行开始。。。。。。,怎么运行不起!,这不科学啊!

技术分享图片

         先别急,看一下ide提示啥(哈 都是e文,和我一样英文弱的同学快去背单词吧,你会收益终身),大概意思是这个文件不是 ascii,没有设置文件编码 。打开百度 ,输入如下关键字”如何为python设置文件编码“之类,你就可以知道在文件开头原来还需要设置这一句”# -*- coding: utf-8 -*-“

让我们加上这一句开始运行,代码如下:

# -*- coding: utf-8 -*-
import urllib
url="http://www.baidu.com" #这里是需要获取的网页
content=urllib.open(url).read() #使用urllib模块获取网页内容
print content #输出网页的内容 功能相当于查看网页源代码

  坑啊 ,怎么还是运行不起来 。。。我了个擦 

技术分享图片

  冷静,冷静, 冷静啊 ,看一下ide提示啥   AttributeError: ‘module‘ object has no attribute ‘open‘  ,大概意思是说属性错误:“模块”对象没有属性“open”  ,这他喵的啥意思。这个时候你应该想这还不简单,直接把这句话复制到百度里搜下不就行了,我当时就是这样想在,然后浪费了10几分钟一无所获,最后只能自己解决了。 我又是怎么解决的呢?首先 ,通过这个ide提示我知道了错误出在这一句代码上 content=urllib.open(url).read()  , 然后我开始重新审视这端代码 ,从字面上看,这句话的意思是用urlib这个东西打开这个网站 ,然后在读取这个网站的内容,所以问题要么出在打开这个网站 上,要么是在读取上。接着 ,我就手动输入urllib.   ,神奇的事情发生了(后来才知道是代码自动补全),出现了如下界面,我看了这个urlopen 想了想, 试不试可以用这个来试下,果然成功了!(兴奋了)

技术分享图片

 完整代码:  

# -*- coding: utf-8 -*-
import urllib
url="http://www.baidu.com" #这里是需要获取的网页
content=urllib.urlopen(url).read() #使用urllib模块获取网页内容
print content #输出网页的内容 功能相当于查看网页源代码

 接着,我们开始打开糗事百科页面,替换下网址就行:  

# -*- coding: utf-8 -*-
import urllib
url="https://www.qiushibaike.com/" #这里是需要获取的网页
content=urllib.urlopen(url).read() #使用urllib模块获取网页内容
print content #输出网页的内容 功能相当于查看网页源代码

开始运行。 又有错了 !

技术分享图片

 老规矩,先看提示

 

 



 

  

所有的python“爬虫“初学者,都应该看这篇文章!(代码片段)

前段时间,黄同学为大家写了一篇爬虫保姆级文章,大家非常喜欢。链接如下:3000字“婴儿级”爬虫图文教学|手把手教你用Python爬取“实习网”!这篇文章其实已经是基础的基础了,但是如果搭配上今天的这... 查看详情

爬虫的日志(代码片段)

1.为什么要使用添加日志功能能够方便的对程序进行调试能够记录程序的运行状态,包括错误2.日志模块简单使用日志的等级importlogging#日志的五个等级,等级依次递增#默认是WARNING等级logging.DEBUGlogging.INFOlogging.WARNINGlogging.ERRORloggi... 查看详情

python爬虫的入门教程都有哪些值得推荐的?

...。以上就是我推荐的几本Python爬虫的入门教程,可以帮助初学者快速掌握Python爬虫的基本技术。参考技术APython爬虫的入门教程有很多值得推荐的,以下是一些比较受欢迎和推荐的教程:1.《精通Python网络爬虫》:这本书是一本入... 查看详情

python网络爬虫学习建议,初学者需要哪些准备

...出应对措施。比如解决cookie问题,或者模拟设备等。作为初学者,学会以上知识基本上爬取任何网站都没问题了,但更重要的是耐心和细心。毕竟爬取网站时并不知道网站已开始是怎么设计的,有哪些小坑,分析起来这些还是比... 查看详情

手把手教你写网络爬虫:网易云音乐歌单

...你写网络爬虫(1)作者:拓海摘要:从零开始写爬虫,初学者的速成指南!封面:  大家好,《手把手教你写网络爬虫》连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序... 查看详情

python爬虫入门(适合初学者)(代码片段)

Python爬虫入门(一)(适合初学者)关于爬虫是什么,怎样保证爬虫的合法性小编在这就不再过多的阐述,从本章起,小编将和大家一起分享在学习python爬虫中的所学,希望可以和大家一起进步,也希望... 查看详情

小白学爬虫:迷你爬虫架构

摘要:从零开始写爬虫,初学者的速成指南!介绍大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的... 查看详情

爬虫的总结私人日志

基于验证码的反爬虫:简单的验证码可以通过图片解析出来,或通过人工打码(一般需付费)基于Headers的反爬虫:大部分网站会对headers中的User-Agent和Referer字段进行检测。可根据浏览器正常访问的请求头对爬虫的请求头进行修... 查看详情

urllib爬虫(流程+案例)(代码片段)

...后的一个案例中把最基本的爬虫要素运用进去,可以作为初学者的一个模板,读懂它进行适当修改就可以使用。  以我的经验来看,在编程上对于陌生的简单的东西,最快的学习方 查看详情

linux系统日志初学者指南

几十年来,Linux日志记录一直由syslogd守护进程管理(注意rsyslogd是syslogd的新版本,是一个东西)。Syslogd将收集系统进程和应用程序发送到 ​​/dev/log​​ 的日志消息。然后它将消息定向到 ​​/var/log/​​ 目录中... 查看详情

如何入门python爬虫?

...习python的类、多线程、模块之类的略难内容。找一个面向初学者的教材或者网络教程,花个十几天功夫,就能对python基础有个三四分的认识了。网络爬虫的含义:网络爬虫,其实也可以叫做网络数据采集更容易理解。就是通过编... 查看详情

爬虫学习日志2(代码片段)

1网页采集器网页采集器要求我们能够动态的爬取搜索页面的信息,即能够根据搜索的关键词的变化来改变爬取的页面实现的代码importrequestsurl=\'https://cn.bing.com/search?\'#指定urlheaders=\'User-Agent\':\'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit... 查看详情

手把手教你写网络爬虫:开源爬虫框架对比

...你写网络爬虫(3)作者:拓海摘要:从零开始写爬虫,初学者的速成指南!封面:  介绍大家好!我们从今天开始学习开源爬虫框架Scrapy,如果你看过《手把手》系列的前两篇,那么今天的内容就非常容易理解了。细心... 查看详情

如何通过查看heroku日志进行调试?(ror的初学者)(代码片段)

我将我的项目推送到heroku并打开了应用程序。然而,它出现了“应用程序错误”,并注意到我检查日志的详细信息。我在iTerm中输入了“heroku日志”,但我无法理解问题出在哪里?以及如何阅读日志?herokulogs-1herokulogs-2herokulogs-3... 查看详情

web攻击的日志分析:初学者指南

由于各种原因,Web应用程序经常面临可疑活动,例如使用自动漏洞扫描程序扫描网站的孩子或试图模糊SQL注入参数的人等。在许多此类情况下,登录必须分析网络服务器以找出发生了什么。如果情况严重,可能需... 查看详情

初学疑惑开发者工具可信度高吗?python爬虫实战场景(代码片段)

本篇博客是一个小小的Python爬虫实践,重点为解释在Python爬虫实战过程中,浏览器的开发者工具和代码抓取的网页源码,存在数据差异。翻译一下就是开发者工具和爬虫采集到的源码,不一样。本次案例来源为《P... 查看详情

python爬虫入门教程:超级简单的python爬虫教程(代码片段)

...细介绍[Python]爬虫入门的教程,从实战出发,适合初学者。读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30分钟即可学会编写简单的Python爬虫。这篇Python爬虫教程主要讲解以下5部分内容:了解网页... 查看详情

python爬虫优化和错误日志分析(代码片段)

发现问题在爬虫下载过程中,执行一段时间后都会异常终止,下次必须kill掉进程重新运行,看能否优化并减少手动操作错误日志分析收集了nohup.out文件,发现主要错误是的数组下标越界,推测可能的问题为:1)网络不稳定,http... 查看详情